asf 및 코로나19 관련조치사항 수정 중간저장

master
DESKTOP-QGC5RJO\DBNT 2023-01-13 15:48:23 +09:00
parent dabb062467
commit 30cda893f5
11 changed files with 320 additions and 520 deletions

View File

@ -38,6 +38,7 @@ public class AsfCovController {
mav.addObject("searchParams", asfCov); mav.addObject("searchParams", asfCov);
asfCov.setQueryInfo(); asfCov.setQueryInfo();
mav.addObject("asfCov", asfCov);
mav.addObject("asfCovList", asfCovService.selectAsfCovList(asfCov)); mav.addObject("asfCovList", asfCovService.selectAsfCovList(asfCov));
asfCov.setPaginationInfo(); asfCov.setPaginationInfo();
return mav; return mav;
@ -66,28 +67,27 @@ public class AsfCovController {
public ModelAndView asfCovViewModal(@AuthenticationPrincipal UserInfo loginUser, AsfCov asfCov){ public ModelAndView asfCovViewModal(@AuthenticationPrincipal UserInfo loginUser, AsfCov asfCov){
ModelAndView mav= new ModelAndView("faStatistics/asfCov/asfCovViewModal"); ModelAndView mav= new ModelAndView("faStatistics/asfCov/asfCovViewModal");
asfCov = asfCovService.selectAsfCov(asfCov.getAsfCovKey());
mav.addObject("userSeq",loginUser.getUserSeq()); mav.addObject("userSeq",loginUser.getUserSeq());
mav.addObject("asfCov", asfCov); mav.addObject("asfCov", asfCovService.selectAsfCov(asfCov.getAsfCovKey()));
mav.addObject("asfCovHistory", asfCovService.selectAsfCovHistory(asfCov.getAsfCovKey()));
return mav; return mav;
} }
@GetMapping("/asfCovHistoryViewModal") // @GetMapping("/asfCovHistoryViewModal")
public ModelAndView asfCovHistoryViewModal(@AuthenticationPrincipal UserInfo loginUser, AsfCov asfCov){ // public ModelAndView asfCovHistoryViewModal(@AuthenticationPrincipal UserInfo loginUser, AsfCov asfCov){
ModelAndView mav = new ModelAndView("faStatistics/asfCov/asfCovHistoryViewModal"); // ModelAndView mav = new ModelAndView("faStatistics/asfCov/asfCovHistoryViewModal");
asfCov = asfCovService.selectAsfCov(asfCov.getAsfCovKey()); // asfCov = asfCovService.selectAsfCov(asfCov.getAsfCovKey());
mav.addObject("userSeq",loginUser.getUserSeq()); // mav.addObject("userSeq",loginUser.getUserSeq());
mav.addObject("asfCovList", asfCovService.selectAsfCovList(asfCov)); // mav.addObject("asfCovList", asfCovService.selectAsfCovList(asfCov));
mav.addObject("asfCov", asfCov); // return mav;
return mav; // }
}
@GetMapping("/asfCovHistoryDetail") @GetMapping("/asfCovHistoryDetail")
public ModelAndView asfCovHistoryDetail(@AuthenticationPrincipal UserInfo loginUser, AsfCov asfCov){ public ModelAndView asfCovHistoryDetail(@AuthenticationPrincipal UserInfo loginUser, AsfCov asfCov){
ModelAndView mav = new ModelAndView("faStatistics/asfCov/asfCovHistoryDetail"); ModelAndView mav = new ModelAndView("faStatistics/asfCov/asfCovHistoryDetail");
asfCov = asfCovService.selectAsfCov(asfCov.getAsfCovKey()); asfCov = asfCovService.selectAsfCov(asfCov.getAsfCovKey());
mav.addObject("userSeq",loginUser.getUserSeq()); mav.addObject("userSeq",loginUser.getUserSeq());
mav.addObject("asfCovHistory", asfCovService.selectAsfCovHistory(asfCov.getAsfCovKey()));
mav.addObject("asfCov", asfCov); mav.addObject("asfCov", asfCov);
return mav; return mav;
} }

View File

@ -14,4 +14,5 @@ public interface AsfCovMapper {
// ArrestType selectArrestType(AsfCov asfCov); // ArrestType selectArrestType(AsfCov asfCov);
List<AsfCov> selectAsfCovListWhere(AsfCov asfCov); List<AsfCov> selectAsfCovListWhere(AsfCov asfCov);
List<AsfCov> selectAsfCovHistory(Integer asfCovKey);
} }

View File

@ -14,6 +14,7 @@ import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatter;
import java.util.List; import java.util.List;
@ -54,14 +55,6 @@ public class AsfCovService extends BaseService {
return asfCov; 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 @Transactional
public Integer saveContent(AsfCov asfCov) { public Integer saveContent(AsfCov asfCov) {
if(asfCov.getAsfCovKey()==null){ if(asfCov.getAsfCovKey()==null){
@ -70,6 +63,7 @@ public class AsfCovService extends BaseService {
asfCov.setVersionNo(1); asfCov.setVersionNo(1);
}else{ }else{
asfCov.setVersionNo(asfCov.getVersionNo()+1); asfCov.setVersionNo(asfCov.getVersionNo()+1);
asfCov.setWrtDt(LocalDateTime.now());
} }
asfCovRepository.save(asfCov); asfCovRepository.save(asfCov);
return asfCov.getAsfCovKey(); return asfCov.getAsfCovKey();
@ -82,4 +76,7 @@ public class AsfCovService extends BaseService {
} }
public List<AsfCov> selectAsfCovHistory(Integer asfCovKey) {
return asfCovMapper.selectAsfCovHistory(asfCovKey);
}
} }

View File

@ -57,62 +57,23 @@
cs.cds_key cs.cds_key
, cs.case_num , cs.case_num
, cs.napo_dt , cs.napo_dt
, cs.napo_sea_point_lon
, cs.napo_sea_point_lat
, cs.napo_sea_point_detail
, cs.invasion_type
, cs.nll
, cs.case_agency , cs.case_agency
, cs.case_police_officer , cs.case_police_officer
, cs.crackdown_boat , cs.crackdown_boat
, cs.crackdown_police , cs.crackdown_police
, cs.mmsi
, cs.field_ivsgt
, cs.obstr_exspd_cnt
, cs.person_damage_cnt
, cs.person_damage_amount
, cs.person_damage_detail
, cs.material_damage_cnt
, cs.material_damage_amount
, cs.material_damage_detail
, cs.field_ivsgt_napo_dt
, cs.field_ivsgt_release_dt
, cs.field_ivsgt_time_taken
, cs.pressurized_start_dt
, cs.pressurized_end_dt
, cs.distance
, fb.fb_key , fb.fb_key
, fb.boat_name_kr , fb.boat_name_kr
, fb.boat_name_cn , fb.boat_name_cn
, fb.ton_cnt
, fb.fishery_type
, fb.boat_material
, fb.boat_nny_sung
, fb.boat_nny_si
, fb.offense_quantity
, fb.offense_amount
, fb.offense_illegal_waste_quantity
, fb.dambo_unpaid_amount
, fb.dambo_payment
, fb.payment_payment_dt
, fb.confiscation_frame
, fb.confiscation_width
, fb.confiscation_jo
, fb.confiscation_gae
, fb.confiscation_etc
, fb.catch_fish_species
, fb.catch_cnt
, fb.offense_fish_species
, fb.offense_catch_cnt
, fb.status , fb.status
FROM asfcov_status a FROM asfcov_status a
inner join (select asfcov_key, max(version_no) as lastVersion
from asfcov_status
group by asfcov_key) b on a.asfcov_key = b.asfcov_key and a.version_no = b.lastVersion
INNER JOIN crackdown_status cs INNER JOIN crackdown_status cs
ON a.cds_key = cs.cds_key ON a.cds_key = cs.cds_key
INNER JOIN fishing_boat fb INNER JOIN fishing_boat fb
ON a.cds_key = fb.cds_key ON a.cds_key = fb.cds_key
<include refid="selectAsfCovListWhere"></include> <include refid="selectAsfCovListWhere"></include>
order by a.asfcov_key desc order by a.asfcov_key desc
limit #{rowCnt} offset #{firstIndex} limit #{rowCnt} offset #{firstIndex}
@ -126,6 +87,17 @@
<include refid="selectAsfCovListWhere"></include> <include refid="selectAsfCovListWhere"></include>
</select> </select>
<select id="selectAsfCovHistory" resultType="AsfCov" parameterType="int">
select asfcov_key,
version_no,
wrt_organ,
wrt_part,
wrt_user_grd,
wrt_user_nm,
wrt_dt
from asfcov_status
where asfcov_key = #{asfcovKey}
order by version_no desc
</select>
</mapper> </mapper>

View File

@ -75,7 +75,7 @@ $(function(){
$(document).on('click', '#deleteMajorBtn', function (){ $(document).on('click', '#deleteMajorBtn', function (){
const asfCovKey = $('#processResultEditBody').find(".asfCovKey").val(); const asfCovKey = $('#asfCovEditModalContent').find(".asfCovKey").val();
console.log(asfCovKey); console.log(asfCovKey);
if(confirm("삭제하시겠습니까?")){ if(confirm("삭제하시겠습니까?")){
//contentFade("in"); //contentFade("in");
@ -109,10 +109,6 @@ function getEditModal(asfCovKey){
type: 'GET', type: 'GET',
dataType:"html", dataType:"html",
success: function(html){ success: function(html){
const crackdownPolice = $("#crackdownPolice").val()
if(crackdownPolice){
getCrackdownBoatOption(crackdownPolice)
}
$("#asfCovEditModalContent").empty().append(html); $("#asfCovEditModalContent").empty().append(html);
$("#asfCovEditModal").modal('show'); $("#asfCovEditModal").modal('show');
$("#editContent").empty().append(html); $("#editContent").empty().append(html);
@ -124,10 +120,13 @@ function getEditModal(asfCovKey){
}); });
} }
function getViewModal(asfCovKey){ function getViewModal(asfCovKey,versionNo){
$.ajax({ $.ajax({
url: '/faStatistics/asfCovViewModal', url: '/faStatistics/asfCovViewModal',
data: {asfCovKey: asfCovKey}, data: {
versionNo : versionNo,
asfCovKey : asfCovKey
},
type: 'GET', type: 'GET',
dataType:"html", dataType:"html",
success: function(html){ success: function(html){
@ -223,10 +222,34 @@ $(document).on('change', '#searchFormPolice', function (){
} }
}) })
$(document).on('click', '.version-tr', function (){ // $(document).on('click', '#history-tab', function (){
$(this).find('input[name="versionNo"]').prop('checked', true); // const asfCovKey = $('#asfCovEditModalContent').find('.asfCovKey').val();
const versionNo = $(this).find('input[name="versionNo"]').val(); // getHistoryViewModal(asfCovKey);
const asfCovKey = $('#asfCovEditForm').find('input[name="cdsKey"]').val(); // });
//
// function getHistoryViewModal(asfCovKey){
// $.ajax({
// url: '/faStatistics/asfCovHistoryViewModal',
// data: {
// asfCovKey: asfCovKey,
// cdsKey : cdsKey,
// },
// type: 'GET',
// dataType:"html",
// success: function(html){
// $("#asfCovViewModalContent").empty().append(html)
// $("#asfCovViewModal").modal('show');
// },
// error:function(e){
// ajaxErrorAction(e);
// }
// });
// }
$(document).on('click', '.versionInfoTr', function (){
$(this).find(".versionNo").prop('checked', true);
const versionNo = $(this).find(".versionNo").val();
const asfCovKey = $(this).find(".asfCovKey").val();
getHistoryDetail(versionNo, asfCovKey); getHistoryDetail(versionNo, asfCovKey);
}); });
@ -235,32 +258,12 @@ function getHistoryDetail(versionNo, asfCovKey){
url: '/faStatistics/asfCovHistoryDetail', url: '/faStatistics/asfCovHistoryDetail',
data: { data: {
versionNo : versionNo, versionNo : versionNo,
asfCovKe : asfCovKey asfCovKey : asfCovKey
}, },
type: 'GET', type: 'GET',
dataType:"html", dataType:"html",
success: function(html){ success: function(html){
$("#historyDetailDiv").empty().append(html); $("#asfcovVersionInfoDiv").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){ error:function(e){
ajaxErrorAction(e); ajaxErrorAction(e);
@ -271,3 +274,4 @@ function getHistoryViewModal(asfCovKey){

View File

@ -114,7 +114,6 @@
<th></th> <th></th>
<th></th> <th></th>
<th></th> <th></th>
<th></th>
</tr> </tr>
</thead> </thead>
<tbody class="table-group-divider align-middle"> <tbody class="table-group-divider align-middle">
@ -130,14 +129,19 @@
<th:block th:each="commonCode:${session.commonCode.get('CPO')}"> <th:block th:each="commonCode:${session.commonCode.get('CPO')}">
<td th:if="${asfcov.crackdownPolice eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></td> <td th:if="${asfcov.crackdownPolice eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></td>
</th:block> </th:block>
<td th:text="${asfcov.pressurizedYn}"></td> <th:block th:unless="${#strings.isEmpty(asfcov.crackdownBoat)}">
<th:block th:each="code:${session.commonCode.get(asfcov.crackdownPolice)}">
<td th:if="${asfcov.crackdownBoat eq code.itemCd}" th:text="${code.itemValue}"></td>
</th:block>
</th:block>
<td th:text="${asfCov.pressurizedYn eq 'Y'}">O</td>
<td></td> <td></td>
<td></td> <td></td>
<td th:text="${asfcov.personCnt}"></td> <td th:text="${asfcov.personCnt}"></td>
<td th:text="${asfcov.personPositiveCnt}"></td> <td th:text="${asfcov.personPositiveCnt}"></td>
<td th:text="${asfcov.personNegativeCnt}"></td> <td th:text="${asfcov.personNegativeCnt}"></td>
<td th:text="${asfcov.asfcovActionDetail}"></td> <td th:text="${asfcov.asfcovActionDetail}"></td>
<td th:text="${asfcov.wrtDt}"></td> <td th:text="${#temporals.format(asfcov.wrtDt, 'yyyy-MM-dd HH:mm')}"></td>
</tr> </tr>

View File

@ -78,7 +78,7 @@
<option value=""></option> <option value=""></option>
<th:block th:each="cpoCode:${session.commonCode.get('CPO')}"> <th:block th:each="cpoCode:${session.commonCode.get('CPO')}">
<th:block th:each="boatCode:${session.commonCode.get(cpoCode.itemCd)}"> <th:block th:each="boatCode:${session.commonCode.get(cpoCode.itemCd)}">
<option th:value="${boatCode.itemCd}" th:text="${boatCode.itemValue}"></option> <option th:value="${boatCode.itemCd}" th:text="${boatCode.itemValue}" th:selected="${boatCode.itemCd eq asfCov.crackdownBoat}"></option>
</th:block> </th:block>
</th:block> </th:block>
</select> </select>
@ -119,7 +119,7 @@
</div> </div>
<div class="row mb-1"> <div class="row mb-1">
<label for="asfcovActionDetail" class="col-sm-1 col-form-label col-form-label-sm text-center">검/방역조치내용</label> <label for="asfcovActionDetail" class="col-sm-1 col-form-label col-form-label-sm text-center">검/방역조치내용</label>
<div class="col-sm-11"> <div class="col-sm-10">
<textarea class="form-control form-control-sm" rows="5" cols="30" id="asfcovActionDetail" name="asfcovActionDetail" th:value="${asfCov.asfcovActionDetail}"></textarea> <textarea class="form-control form-control-sm" rows="5" cols="30" id="asfcovActionDetail" name="asfcovActionDetail" th:value="${asfCov.asfcovActionDetail}"></textarea>
</div> </div>
</div> </div>

View File

@ -1,29 +1,20 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en"> <html lang="en">
<div class="row mb-1">
나포정보 <div class="row mb-1">
</div> <label class="col-sm-2 col-form-label col-form-label-sm text-center">선명</label>
<div class="row mb-1">
<label class="col-sm-2 col-form-label col-form-label-sm text-center">나포일시</label>
<div class="col-4"> <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> <input class="form-control form-control-sm" name="boatNameKr" id="boatNameKr" th:value="${asfCov.boatNameKr}" readonly>
</div>
<label for="caseNum" class="col-sm-2 col-form-label col-form-label-sm text-center">사건번호</label>
<div class="col-sm-4">
<div class="input-group">
<input type="text" class="form-control form-control-sm cdsInfo" id="caseNum" name="caseNum" th:value="${asfCov.caseNum}" disabled>
</div>
</div>
</div> </div>
</div> <div class="row mb-1">
<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> <label class="col-sm-2 col-form-label col-form-label-sm text-center">사건담당 기관</label>
<div class="col-4"> <div class="col-4">
<select class="form-select form-select-sm" name="caseAgency" disabled> <select class="form-select form-select-sm" name="caseAgency" disabled>
@ -34,7 +25,7 @@
</th:block> </th:block>
</select> </select>
</div> </div>
<label class="col-sm-2 col-form-label col-form-label-sm text-center">단속<br>경찰서</label> <label class="col-sm-2 col-form-label col-form-label-sm text-center">단속경찰서</label>
<div class="col-4"> <div class="col-4">
<select class="form-select form-select-sm" name="crackdownPolice" id="crackdownPolice" disabled> <select class="form-select form-select-sm" name="crackdownPolice" id="crackdownPolice" disabled>
<option value="">선택</option> <option value="">선택</option>
@ -45,8 +36,8 @@
<option value="etc">직접입력</option> <option value="etc">직접입력</option>
</select> </select>
</div> </div>
</div> </div>
<div class="row mb-1"> <div class="row mb-1">
<label class="col-sm-2 col-form-label col-form-label-sm text-center">단속함정</label> <label class="col-sm-2 col-form-label col-form-label-sm text-center">단속함정</label>
<div class="col-4"> <div class="col-4">
<select class="form-select form-select-sm" name="crackdownBoat" id="crackdownBoat" disabled> <select class="form-select form-select-sm" name="crackdownBoat" id="crackdownBoat" disabled>
@ -58,12 +49,43 @@
</th:block> </th:block>
</select> </select>
</div> </div>
</div> </div>
<!--<div class="row mb-1">--> <div class="row mb-1">
<!-- <label class="col-sm-2 col-form-label col-form-label-sm text-center">나포일시</label>--> <label for="pressurizedYn" class="col-sm-2 col-form-label col-form-label-sm text-center">전용부두 압송여부</label>
<!-- <div class="col-4">--> <div class="col-sm-4">
<!-- <input class="form-control form-control-sm" name="fieldIvsgtNapoDt" id="fieldIvsgtNapoDt" th:value="${#temporals.format(asfCovList.fieldIvsgtNapoDt, 'yyyy-MM-dd HH:mm')}" readonly>--> <select class="form-select form-select-sm crackdownStatusInfo" name="pressurizedYn" id="pressurizedYn">
<!-- </div>--> <option value="">선택</option>
<!--</div>--> <option value="O" th:selected="${asfCov.pressurizedYn eq 'Y'}">압송</option>
<option value="" th:selected="${asfCov.pressurizedYn eq 'N'}">미압송</option>
</select>
</div>
<label for="pressurizedN" class="col-sm-2 col-form-label col-form-label-sm text-center">미압송시</label>
<div class="col-sm-4">
<select class="form-select form-select-sm crackdownStatusInfo" name="pressurizedN" id="pressurizedN">
<option value="">선택</option>
<option value="Y" th:selected="${asfCov.pressurizedN eq 'A'}">현장조사</option>
<option value="N" th:selected="${asfCov.pressurizedN eq 'O'}">기타</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-sm-2">
<input type="text" class="form-control form-control-sm crackdownStatusInfo" id="personCnt" name="personCnt" th:value="${asfCov.personCnt}" readonly>
</div>
<label class="col-sm-1 col-form-label col-form-label-sm text-center">양성</label>
<div class="col-sm-1">
<input type="text" class="form-control form-control-sm crackdownStatusInfo" id="personPositiveCnt" name="personPositiveCnt" th:value="${asfCov.personPositiveCnt}" readonly>
</div>
<label class="col-sm-1 col-form-label col-form-label-sm text-center">음성</label>
<div class="col-sm-1">
<input type="text" class="form-control form-control-sm crackdownStatusInfo" id="personNegativeCnt" name="personNegativeCnt" th:value="${asfCov.personNegativeCnt}" readonly>
</div>
</div>
<div class="row mb-1">
<label for="asfcovActionDetail" class="col-sm-2 col-form-label col-form-label-sm text-center">검/방역조치내용</label>
<div class="col-sm-8">
<textarea class="form-control form-control-sm" rows="5" cols="30" id="asfcovActionDetail" name="asfcovActionDetail" th:value="${asfCov.asfcovActionDetail}" readonly></textarea>
</div>
</div>
</html> </html>

View File

@ -1,201 +0,0 @@
<!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>

View File

@ -1,12 +1,12 @@
<!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 bg-dark"> <div class="modal-header bg-dark">
<h5 class="modal-title text-white" id="processResultEditModalLabel">ASF 및 코로나19 관련 조치현황</h5> <h5 class="modal-title text-white" id="asfCovEditModalLabel">ASF 및 코로나19 관련 조치현황</h5>
<button type="button" class="btn-close f-invert" data-bs-dismiss="modal" aria-label="Close"></button> <button type="button" class="btn-close f-invert" data-bs-dismiss="modal" aria-label="Close"></button>
</div> </div>
<!-- 탭 메뉴 -->
<div class="modal-body"> <div class="modal-body">
<ul class="nav nav-tabs" role="tablist"> <!-- 탭 메뉴 -->
<ul class="nav nav-tabs" role="tablist">
<li class="nav-item" role="presentation"> <li class="nav-item" role="presentation">
<button class="nav-link processResultTab active" id="processResult-tab" data-bs-toggle="tab" <button class="nav-link processResultTab active" id="processResult-tab" data-bs-toggle="tab"
data-bs-target="#processResult" type="button" role="tab" aria-controls="processResult" data-processResult-type="processResult" data-bs-target="#processResult" type="button" role="tab" aria-controls="processResult" data-processResult-type="processResult"
@ -17,11 +17,11 @@
data-bs-target="#history" type="button" role="tab" data-history-type="history" data-bs-target="#history" type="button" role="tab" data-history-type="history"
aria-controls="history">수정이력</button> aria-controls="history">수정이력</button>
</li> </li>
</ul> </ul>
<!-- 내용 --> <!-- 내용 -->
<div class="tab-content bg-white border border-top-0 p-2"> <div class="tab-content bg-white border border-top-0 p-2">
<div class="tab-pane fade show active" id="processResult" role="tabpanel" aria-labelledby="processResult-tab"> <div class="tab-pane fade show active" id="processResult" role="tabpanel" aria-labelledby="processResult-tab">
<div class="modal-body" id="processResultEditBody"> <div class="modal-body" id="asfCovEditModalContent">
<input type="hidden" class="asfCovKey" th:value="${asfCov.asfCovKey}"> <input type="hidden" class="asfCovKey" th:value="${asfCov.asfCovKey}">
<div class="row mb-1"> <div class="row mb-1">
<label for="wrtUserNm" class="col-sm-1 col-form-label col-form-label-sm text-center">작성자</label> <label for="wrtUserNm" class="col-sm-1 col-form-label col-form-label-sm text-center">작성자</label>
@ -132,7 +132,7 @@
</div> </div>
</div> </div>
</div> </div>
<div class="tab-pane fade p-2 mx-2" id="history" role="tabpanel" aria-labelledby="history-tab" tabindex="0"> <div class="tab-pane fade" id="history" role="tabpanel" aria-labelledby="history-tab">
<div class="row"> <div class="row">
<div class="col-4"> <div class="col-4">
<table class="table table-hover"> <table class="table table-hover">
@ -144,7 +144,7 @@
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
<tr class="versionInfoTr" th:each="asfcov:${asfCovList}"> <tr class="versionInfoTr" th:each="asfcov:${asfCovHistory}">
<input type="hidden" class="asfCovKey" th:value="${asfcov.asfCovKey}"> <input type="hidden" class="asfCovKey" th:value="${asfcov.asfCovKey}">
<input type="hidden" class="versionNo" th:value="${asfcov.versionNo}"> <input type="hidden" class="versionNo" th:value="${asfcov.versionNo}">
<td><input type="checkbox" class="versionInfoChkbox"></td> <td><input type="checkbox" class="versionInfoChkbox"></td>
@ -152,6 +152,9 @@
<th:block th:each="commonCode:${session.commonCode.get('OG')}"> <th:block th:each="commonCode:${session.commonCode.get('OG')}">
<th:block th:if="${asfcov.wrtOrgan eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></th:block> <th:block th:if="${asfcov.wrtOrgan eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></th:block>
</th:block> </th:block>
<th:block th:each="commonCode:${session.commonCode.get('OFC')}">
<th:block th:if="${asfcov.wrtPart eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></th:block>
</th:block>
<br> <br>
<th:block th:each="commonCode:${session.commonCode.get('JT')}"> <th:block th:each="commonCode:${session.commonCode.get('JT')}">
<th:block th:if="${asfcov.wrtUserGrd eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></th:block> <th:block th:if="${asfcov.wrtUserGrd eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></th:block>
@ -163,20 +166,17 @@
</tbody> </tbody>
</table> </table>
</div> </div>
<div class="col-8" id="fishingBoardVersionInfoDiv"> <div class="col-8" id="asfcovVersionInfoDiv">
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<div class="modal-footer bg-light"> <div class="modal-footer bg-light">
<th:block th:if="${userSeq eq asfCov.wrtUserSeq}"><!--작성자일 경우 수정 허용--> <th:block th:if="${userSeq eq asfCov.wrtUserSeq}"><!--작성자일 경우 수정 허용-->
<button type="button" class="btn btn-warning" id="editBtn" th:data-asfCovkey="${asfCov.asfCovKey}">수정</button> <button type="button" class="btn btn-warning" id="editBtn" th:data-asfCovkey="${asfCov.asfCovKey}">수정</button>
</th:block> </th:block>
<!-- <th:block th:if="${userSeq eq asfCov.wrtUserSeq or accessAuth eq 'ACC003'}">&lt;!&ndash;작성자일 경우 수정 허용&ndash;&gt;&lt;!&ndash;관리자일 경우 수정 허용&ndash;&gt;-->
<!-- <button type="button" class="btn btn-warning" id="processResultEditBtn">수정</button>-->
<!-- </th:block>-->
<button type="button" class="btn btn-danger" id="deleteMajorBtn">삭제</button> <button type="button" class="btn btn-danger" id="deleteMajorBtn">삭제</button>
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">닫기</button> <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">닫기</button>
</div> </div>

View File

@ -157,6 +157,7 @@
</div> </div>
</div> </div>
</div> </div>
</div>
<div class="modal-footer bg-light"> <div class="modal-footer bg-light">
<th:block th:if="${userSeq eq processResult.wrtUserSeq or accessAuth eq 'ACC003'}"><!--작성자일 경우 수정 허용--><!--관리자일 경우 수정 허용--> <th:block th:if="${userSeq eq processResult.wrtUserSeq or accessAuth eq 'ACC003'}"><!--작성자일 경우 수정 허용--><!--관리자일 경우 수정 허용-->
<button type="button" class="btn btn-warning" id="processResultEditBtn">수정</button> <button type="button" class="btn btn-warning" id="processResultEditBtn">수정</button>