수정이력 추가중
parent
72b9da084d
commit
d7c5281d2b
|
|
@ -5,6 +5,7 @@ package com.dbnt.faisp.main.faStatistics.crackdownsStatus;
|
|||
import com.dbnt.faisp.main.codeMgt.service.CodeMgtService;
|
||||
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.asfCov.AsfCov;
|
||||
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.crackdownStatus.CrackdownStatus;
|
||||
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.crackdownStatus.CrackdownStatusVersion;
|
||||
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.fishingBoat.FishingBoat;
|
||||
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.processResult.ProcessResult;
|
||||
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.service.AsfCovService;
|
||||
|
|
@ -72,6 +73,25 @@ public class AsfCovController {
|
|||
return mav;
|
||||
}
|
||||
|
||||
@GetMapping("/asfCovHistoryViewModal")
|
||||
public ModelAndView asfCovHistoryViewModal(@AuthenticationPrincipal UserInfo loginUser, AsfCov asfCov){
|
||||
ModelAndView mav = new ModelAndView("faStatistics/asfCov/asfCovHistoryViewModal");
|
||||
asfCov = asfCovService.selectAsfCov(asfCov.getAsfCovKey());
|
||||
mav.addObject("userSeq",loginUser.getUserSeq());
|
||||
mav.addObject("asfCovList", asfCovService.selectAsfCovList(asfCov));
|
||||
mav.addObject("asfCov", asfCov);
|
||||
return mav;
|
||||
}
|
||||
|
||||
@GetMapping("/asfCovHistoryDetail")
|
||||
public ModelAndView asfCovHistoryDetail(@AuthenticationPrincipal UserInfo loginUser, AsfCov asfCov){
|
||||
ModelAndView mav = new ModelAndView("faStatistics/asfCov/asfCovHistoryDetail");
|
||||
asfCov = asfCovService.selectAsfCov(asfCov.getAsfCovKey());
|
||||
mav.addObject("userSeq",loginUser.getUserSeq());
|
||||
mav.addObject("asfCov", asfCov);
|
||||
return mav;
|
||||
}
|
||||
|
||||
@PostMapping("/saveContent")
|
||||
public Integer saveContent (AsfCov asfCov){
|
||||
return asfCovService.saveContent(asfCov);
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ package com.dbnt.faisp.main.faStatistics.crackdownsStatus.repository;
|
|||
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.asfCov.AsfCov;
|
||||
|
||||
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.crackdownStatus.CrackdownStatus;
|
||||
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.crackdownStatus.CrackdownStatusVersion;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
|
||||
import java.util.List;
|
||||
|
|
@ -11,7 +12,8 @@ import java.util.Optional;
|
|||
public interface AsfCovRepository extends JpaRepository<AsfCov, Integer> {
|
||||
Optional<AsfCov> findByCdsKey(Integer cdsKey);
|
||||
Optional<AsfCov> findByAsfCovKey(Integer asfCovKey);
|
||||
// void deleteByAsfCov(Integer asfCovKey);
|
||||
// void deleteByAsfCov(Integer asfCovKey);
|
||||
AsfCov findByVersionNoAndAsfCovKey(Integer versionNo, Integer asfCovKey);
|
||||
Optional<AsfCov> findTop1ByAsfCovKeyOrderByVersionNoDesc(Integer asfCovKey);
|
||||
Optional<AsfCov> findTop1ByOrderByAsfCovKeyDesc();
|
||||
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ import com.dbnt.faisp.config.BaseService;
|
|||
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.mapper.AsfCovMapper;
|
||||
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.asfCov.AsfCov;
|
||||
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.crackdownStatus.CrackdownStatus;
|
||||
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.crackdownStatus.CrackdownStatusVersion;
|
||||
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.fishingBoat.FishingBoat;
|
||||
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.repository.AsfCovRepository;
|
||||
|
||||
|
|
@ -53,6 +54,14 @@ public class AsfCovService extends BaseService {
|
|||
return asfCov;
|
||||
}
|
||||
|
||||
// public List<CrackdownStatusVersion> selectCrackdownStatusVersionList(Integer asfCovKey) {
|
||||
// return asfCovRepository.findByAsfCovKey(asfCovKey);
|
||||
// }
|
||||
//
|
||||
// public CrackdownStatusVersion selectCrackdownStatusVersion(Integer versionNo, Integer asfCovKey) {
|
||||
// return asfCovRepository.findByVersionNoAndAsfCovKey(versionNo, asfCovKey);
|
||||
// }
|
||||
|
||||
@Transactional
|
||||
public Integer saveContent(AsfCov asfCov) {
|
||||
if(asfCov.getAsfCovKey()==null){
|
||||
|
|
|
|||
|
|
@ -173,13 +173,6 @@ function contentCheck(formId){
|
|||
return flag;
|
||||
}
|
||||
|
||||
function commentFormReset(){
|
||||
const commentForm = $("#commentForm");
|
||||
commentForm[0].reset();
|
||||
$("#childFormRemoveBtn").hide();
|
||||
$("#parentComment").val('');
|
||||
$("#commentFormHome").append(commentForm)
|
||||
}
|
||||
|
||||
$(document).on('click', '#asfCovDownExcel', function (){
|
||||
exportExcel('ASF 및 코로나19 관련 조치현황', 'asfCovTable');
|
||||
|
|
@ -230,6 +223,50 @@ $(document).on('change', '#searchFormPolice', function (){
|
|||
}
|
||||
})
|
||||
|
||||
$(document).on('click', '.version-tr', function (){
|
||||
$(this).find('input[name="versionNo"]').prop('checked', true);
|
||||
const versionNo = $(this).find('input[name="versionNo"]').val();
|
||||
const asfCovKey = $('#asfCovEditForm').find('input[name="cdsKey"]').val();
|
||||
getHistoryDetail(versionNo, asfCovKey);
|
||||
});
|
||||
|
||||
function getHistoryDetail(versionNo, asfCovKey){
|
||||
$.ajax({
|
||||
url: '/faStatistics/asfCovHistoryDetail',
|
||||
data: {
|
||||
versionNo : versionNo,
|
||||
asfCovKe : asfCovKey
|
||||
},
|
||||
type: 'GET',
|
||||
dataType:"html",
|
||||
success: function(html){
|
||||
$("#historyDetailDiv").empty().append(html);
|
||||
},
|
||||
error:function(e){
|
||||
ajaxErrorAction(e);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
$(document).on('click', '#history-tab', function (){
|
||||
getHistoryViewModal($('#asfCovEditForm').find('input[name="asfCovKey"]').val());
|
||||
});
|
||||
|
||||
function getHistoryViewModal(asfCovKey){
|
||||
$.ajax({
|
||||
url: '/faStatistics/asfCovHistoryViewModal',
|
||||
data: {asfCovKey: asfCovKey},
|
||||
type: 'GET',
|
||||
dataType:"html",
|
||||
success: function(html){
|
||||
$("#asfCovViewModalContent").empty().append(html)
|
||||
$("#asfCovViewModal").modal('show');
|
||||
},
|
||||
error:function(e){
|
||||
ajaxErrorAction(e);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,69 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<div class="row mb-1">
|
||||
나포정보
|
||||
</div>
|
||||
<div class="row mb-1">
|
||||
<label class="col-sm-2 col-form-label col-form-label-sm text-center">나포일시</label>
|
||||
<div class="col-4">
|
||||
<input class="form-control form-control-sm" name="napoDt" id="napoDt" th:value="${#temporals.format(asfCov.napoDt, 'yyyy-MM-dd HH:mm')}" readonly>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="row mb-1">
|
||||
<label class="col-sm-2 col-form-label col-form-label-sm text-center">침범유형</label>
|
||||
<div class="col-4">
|
||||
<select class="form-select form-select-sm" name="invasionType" disabled>
|
||||
<option value="">선택</option>
|
||||
<th:block th:each="commonCode:${session.commonCode.get('IST')}">
|
||||
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}"
|
||||
th:selected="${commonCode.itemCd eq asfCov.invasionType}"></option>
|
||||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row mb-1">
|
||||
<label class="col-sm-2 col-form-label col-form-label-sm text-center">사건담당 기관</label>
|
||||
<div class="col-4">
|
||||
<select class="form-select form-select-sm" name="caseAgency" disabled>
|
||||
<option value="">선택</option>
|
||||
<th:block th:each="commonCode:${session.commonCode.get('ATA')}">
|
||||
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}"
|
||||
th:selected="${commonCode.itemCd eq asfCov.caseAgency}"></option>
|
||||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
<label class="col-sm-2 col-form-label col-form-label-sm text-center">단속<br>경찰서</label>
|
||||
<div class="col-4">
|
||||
<select class="form-select form-select-sm" name="crackdownPolice" id="crackdownPolice" disabled>
|
||||
<option value="">선택</option>
|
||||
<th:block th:each="commonCode:${session.commonCode.get('CPO')}">
|
||||
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}"
|
||||
th:selected="${commonCode.itemCd eq asfCov.crackdownPolice}"></option>
|
||||
</th:block>
|
||||
<option value="etc">직접입력</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-1">
|
||||
<label class="col-sm-2 col-form-label col-form-label-sm text-center">단속함정</label>
|
||||
<div class="col-4">
|
||||
<select class="form-select form-select-sm" name="crackdownBoat" id="crackdownBoat" disabled>
|
||||
<option value="">선택</option>
|
||||
<th:block th:each="num : ${#numbers.sequence(1,#lists.size(session.commonCode.get('CPO')))}">
|
||||
<th:block th:if="${'CPO'+num == asfCov.crackdownPolice}" th:each="commonCode:${session.commonCode.get('CPO'+num)}">
|
||||
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${asfCov.crackdownBoat eq commonCode.itemCd}"></option>
|
||||
</th:block>
|
||||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<!--<div class="row mb-1">-->
|
||||
<!-- <label class="col-sm-2 col-form-label col-form-label-sm text-center">나포일시</label>-->
|
||||
<!-- <div class="col-4">-->
|
||||
<!-- <input class="form-control form-control-sm" name="fieldIvsgtNapoDt" id="fieldIvsgtNapoDt" th:value="${#temporals.format(asfCovList.fieldIvsgtNapoDt, 'yyyy-MM-dd HH:mm')}" readonly>-->
|
||||
<!-- </div>-->
|
||||
<!--</div>-->
|
||||
|
||||
</html>
|
||||
|
|
@ -0,0 +1,201 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="ko" xmlns:th="http://www.thymeleaf.org">
|
||||
<div class="modal-header bg-dark">
|
||||
<h5 class="modal-title text-white" id="processResultEditModalLabel">ASF 및 코로나19 관련 조치현황</h5>
|
||||
<button type="button" class="btn-close f-invert" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||
</div>
|
||||
<!-- 탭 메뉴 -->
|
||||
<ul class="nav nav-tabs" role="tablist">
|
||||
<li class="nav-item" role="presentation">
|
||||
<button class="nav-link crackdownStatusTab" id="crackdownStatus-tab" data-bs-toggle="tab"
|
||||
data-bs-target="#crackdownStatus" type="button" role="tab" aria-controls="crackdownStatus" data-crackdownStatus-type="crackdownStatus"
|
||||
aria-selected="true">상세</button>
|
||||
</li>
|
||||
<li class="nav-item" role="presentation">
|
||||
<button class="nav-link crackdownStatusTab active" id="history-tab" data-bs-toggle="tab"
|
||||
data-bs-target="#history" type="button" role="tab" data-history-type="history"
|
||||
aria-controls="history">수정이력</button>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<!-- 내용 -->
|
||||
<div class="tab-content" style="overflow-y: scroll">
|
||||
<div class="tab-pane fade show active" id="history" role="tabpanel" aria-labelledby="history-tab">
|
||||
<div class="modal-body" id="cdsEditBody">
|
||||
<form action="#" method="post" id="cdsEditForm">
|
||||
<input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/>
|
||||
<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="cdsKey" th:value="${asfCov.cdsKey}">
|
||||
<th:block th:if="${!#lists.isEmpty(asfCov)}">
|
||||
<div class="row justify-content-start">
|
||||
<div class="col-3">
|
||||
<table class="table table-sm table-hover table-bordered" id="crackdownStatusVersionTable">
|
||||
<thead>
|
||||
<tr>
|
||||
<th></th>
|
||||
<th>작성인</th>
|
||||
<th>작성/수정일</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody class="table-group-divider">
|
||||
<th:block th:each="asfCov:${asfCovList}">
|
||||
<tr class="version-tr">
|
||||
<td>
|
||||
<input type="radio" name="versionNo" th:value="${asfCov.versionNo}">
|
||||
</td>
|
||||
<td th:text="${asfCov.wrtUserNm}"></td>
|
||||
<td th:text="${#temporals.format(asfCov.wrtDt, 'yyyy-MM-dd HH:mm')}"></td>
|
||||
</tr>
|
||||
</th:block>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="col-9">
|
||||
<div id="historyDetailDiv">
|
||||
<div class="row mb-1">
|
||||
나포정보
|
||||
</div>
|
||||
<div class="row mb-1">
|
||||
<label class="col-sm-2 col-form-label col-form-label-sm text-center">나포일시</label>
|
||||
<div class="col-4">
|
||||
<input class="form-control form-control-sm" name="napoDt" id="napoDt" readonly>
|
||||
</div>
|
||||
<label class="col-sm-2 col-form-label col-form-label-sm text-center">NLL</label>
|
||||
<div class="col-4">
|
||||
<input class="form-control form-control-sm" name="nll" id="nll" readonly>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-1">
|
||||
<label class="col-sm-2 col-form-label col-form-label-sm text-center">침범유형</label>
|
||||
<div class="col-4">
|
||||
<input class="form-control form-control-sm" name="invasionType" id="invasionType" readonly>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-1">
|
||||
<label class="col-sm-2 col-form-label col-form-label-sm text-center">위반장소</label>
|
||||
<div class="col-6">
|
||||
<input class="form-control form-control-sm" placeholder="위도" name="napoSeaPointLat" readonly>
|
||||
<input class="form-control form-control-sm" placeholder="경도" name="napoSeaPointLon" readonly>
|
||||
<input class="form-control form-control-sm" placeholder="상세내용" name="napoSeaPointDetail" readonly>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-1">
|
||||
특수공무집행방해
|
||||
</div>
|
||||
<div class="row mb-1">
|
||||
<label class="col-sm-2 col-form-label col-form-label-sm text-center">발생건수</label>
|
||||
<div class="col-4">
|
||||
<input type="number" min="0" class="form-control form-control-sm" name="obstrExspdCnt" readonly>
|
||||
</div>
|
||||
<label class="col-sm-2 col-form-label col-form-label-sm text-center">피해인원</label>
|
||||
<div class="col-4">
|
||||
<input type="number" min="0" class="form-control form-control-sm" name="personDamageCnt" readonly>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-1">
|
||||
<label class="col-sm-2 col-form-label col-form-label-sm text-center">피해액</label>
|
||||
<div class="col-4">
|
||||
<input type="number" min="0" class="form-control form-control-sm" name="personDamageAmount" readonly>
|
||||
</div>
|
||||
<label class="col-sm-2 col-form-label col-form-label-sm text-center">상세내용</label>
|
||||
<div class="col-4">
|
||||
<input class="form-control form-control-sm" name="personDamageDetail" readonly>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-1">
|
||||
<label class="col-sm-2 col-form-label col-form-label-sm text-center">발생건수</label>
|
||||
<div class="col-4">
|
||||
<input type="number" min="0" class="form-control form-control-sm" name="materialDamageCnt" readonly>
|
||||
</div>
|
||||
<label class="col-sm-2 col-form-label col-form-label-sm text-center">피해액</label>
|
||||
<div class="col-4">
|
||||
<input type="number" min="0" class="form-control form-control-sm" name="materialDamageAmount" readonly>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-1">
|
||||
<label class="col-sm-2 col-form-label col-form-label-sm text-center">상세내용</label>
|
||||
<div class="col-4">
|
||||
<input class="form-control form-control-sm" name="materialDamageDetail" readonly>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-1">
|
||||
검거기관
|
||||
</div>
|
||||
<div class="row mb-1">
|
||||
<label class="col-sm-2 col-form-label col-form-label-sm text-center">사건담당 기관</label>
|
||||
<div class="col-4">
|
||||
<input class="form-control form-control-sm" name="caseAgency" readonly>
|
||||
</div>
|
||||
<label class="col-sm-2 col-form-label col-form-label-sm text-center">단속<br>경찰서</label>
|
||||
<div class="col-4">
|
||||
<input class="form-control form-control-sm" name="crackdownPolice" readonly>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-1">
|
||||
<label class="col-sm-2 col-form-label col-form-label-sm text-center">단속함정</label>
|
||||
<div class="col-4">
|
||||
<input class="form-control form-control-sm" name="crackdownBoat" readonly>
|
||||
</div>
|
||||
<label class="col-sm-2 col-form-label col-form-label-sm text-center">MMSI.NO</label>
|
||||
<div class="col-4">
|
||||
<input class="form-control form-control-sm" name="mmsi" readonly>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-1">
|
||||
현장조사
|
||||
</div>
|
||||
<div class="row mb-1">
|
||||
<label class="col-sm-2 col-form-label col-form-label-sm text-center">나포일시</label>
|
||||
<div class="col-4">
|
||||
<input class="form-control form-control-sm" name="fieldIvsgtNapoDt" id="fieldIvsgtNapoDt" readonly>
|
||||
</div>
|
||||
<label class="col-sm-2 col-form-label col-form-label-sm text-center">석방일시</label>
|
||||
<div class="col-4">
|
||||
<input class="form-control form-control-sm" name="fieldIvsgtReleaseDt" id="fieldIvsgtReleaseDt" readonly>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-1">
|
||||
<label class="col-sm-2 col-form-label col-form-label-sm text-center">소요시간</label>
|
||||
<div class="col-4">
|
||||
<input class="form-control form-control-sm" name="fieldIvsgtTimeTaken" readonly>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-1">
|
||||
압송
|
||||
</div>
|
||||
<div class="row mb-1">
|
||||
<label class="col-sm-2 col-form-label col-form-label-sm text-center">압송시작</label>
|
||||
<div class="col-4">
|
||||
<input class="form-control form-control-sm" name="pressurizedStartDt" id="pressurizedStartDt" readonly>
|
||||
</div>
|
||||
<label class="col-sm-2 col-form-label col-form-label-sm text-center">압송종료</label>
|
||||
<div class="col-4">
|
||||
<input class="form-control form-control-sm" name="pressurizedEndDt" id="pressurizedEndDt" readonly>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-1">
|
||||
<label class="col-sm-2 col-form-label col-form-label-sm text-center">영장청구<br>소요시간</label>
|
||||
<div class="col-4">
|
||||
<input class="form-control form-control-sm" name="warrantReqTakeTime" readonly>
|
||||
</div>
|
||||
<label class="col-sm-2 col-form-label col-form-label-sm text-center">거리</label>
|
||||
<div class="col-4">
|
||||
<input class="form-control form-control-sm" name="distance" readonly>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</th:block>
|
||||
<th:block th:if="${#lists.isEmpty(asfCovList)}">
|
||||
<div>수정이력이 없습니다.</div>
|
||||
</th:block>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-footer bg-light">
|
||||
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">닫기</button>
|
||||
</div>
|
||||
</html>
|
||||
Loading…
Reference in New Issue