불법조업 외국어선 하위 페이지 게시판 디자인 작업 및 검색조건 정리.

공통코드 저장시 오류사항 수정.
datepicker autoclose 미적용 항목 수정.
강석 최 2022-12-01 15:15:55 +09:00
parent f98ce35af1
commit 5068c2e10f
23 changed files with 1731 additions and 1641 deletions

View File

@ -14,4 +14,5 @@ public interface CodeMgtRepository extends JpaRepository<CodeMgt, CodeMgt.CodeMg
Optional<CodeMgt> findByCategoryCdAndItemValue(String categoryCd, String itemValue); Optional<CodeMgt> findByCategoryCdAndItemValue(String categoryCd, String itemValue);
List<CodeMgt> findByUseChkOrderByItemCdAsc(String useChk); List<CodeMgt> findByUseChkOrderByItemCdAsc(String useChk);
List<CodeMgt> findByOrderByOrderNumAsc(); List<CodeMgt> findByOrderByOrderNumAsc();
Optional<CodeMgt> findByCategoryCdOrderByItemCdDesc(String categoryCd);
} }

View File

@ -39,9 +39,15 @@ public class CodeMgtService{
HashMap<String, Integer> map = new HashMap<>(); HashMap<String, Integer> map = new HashMap<>();
for(CodeMgt code: codeList){ for(CodeMgt code: codeList){
if(code.getItemCd().isEmpty()){ if(code.getItemCd().isEmpty()){
CodeMgt lastCode = codeMgtRepository.findByCategoryCdOrderByItemCdDesc(code.getCategoryCd()).orElse(null);
if(lastCode==null){
String lastCodeSeq = lastCode.getItemCd().replace(lastCode.getCategoryCd(), "");
map.put(code.getCategoryCd(), Integer.parseInt(lastCodeSeq)+1);
}else{
map.put(code.getCategoryCd(), 1); map.put(code.getCategoryCd(), 1);
} }
} }
}
for(CodeMgt code: codeList){ for(CodeMgt code: codeList){
if(code.getItemCd().isEmpty()) { if(code.getItemCd().isEmpty()) {
Integer categorySeq = map.get(code.getCategoryCd()); Integer categorySeq = map.get(code.getCategoryCd());

View File

@ -104,8 +104,8 @@
.w-100p{ .w-100p{
width: 100px; width: 100px;
} }
#subModalBody{ .min-width-300{
white-space: nowrap; min-width: 300px!important;
} }
.statusInput::-webkit-outer-spin-button, .statusInput::-webkit-outer-spin-button,
.statusInput::-webkit-inner-spin-button{ .statusInput::-webkit-inner-spin-button{

View File

@ -22,7 +22,8 @@ $(document).on('click', '#addEquip', function (){
$(".storedYear").datepicker({ $(".storedYear").datepicker({
minViewMode: 'years', minViewMode: 'years',
format: "yyyy", format: "yyyy",
language: "ko" language: "ko",
autoclose: true
}) })
}, },
error:function(){ error:function(){
@ -122,7 +123,8 @@ function showUpdateModal(equKey){
$(".mStoredYear").datepicker({ $(".mStoredYear").datepicker({
minViewMode: 'years', minViewMode: 'years',
format: "yyyy", format: "yyyy",
language: "ko" language: "ko",
autoclose: true
}) })
}, },
error:function(){ error:function(){

View File

@ -1,7 +1,8 @@
$(function(){ $(function(){
$("#dateSelectorDiv").datepicker({ $("#dateSelectorDiv").datepicker({
format: "yyyy-mm-dd", format: "yyyy-mm-dd",
language: "ko" language: "ko",
autoclose: true
}); });
}) })
@ -26,7 +27,8 @@ function showEditModal(useType){
$("#useEditModal").modal('show'); $("#useEditModal").modal('show');
$("#useDt").datepicker({ $("#useDt").datepicker({
format: "yyyy-mm-dd", format: "yyyy-mm-dd",
language: "ko" language: "ko",
autoclose: true
}); });
$('#detailSelf').hide(); $('#detailSelf').hide();
}, },
@ -97,7 +99,8 @@ function showMdifyModal(useNo,useType,mgtOrgan){
$("#useEditModal").modal('show'); $("#useEditModal").modal('show');
$("#mUseDt").datepicker({ $("#mUseDt").datepicker({
format: "yyyy-mm-dd", format: "yyyy-mm-dd",
language: "ko" language: "ko",
autoclose: true
}); });
if($('#mDetailType').val() != 'PVREUSE007' && $('#mDetailType').val() != 'QIRUSE006'){ if($('#mDetailType').val() != 'PVREUSE007' && $('#mDetailType').val() != 'QIRUSE006'){
$('#mDetailSelf').hide(); $('#mDetailSelf').hide();

View File

@ -1,49 +1,37 @@
$(function(){ $(function(){
$("#napoDate").datepicker({ const searchFormBoat = $("#searchFormBoat")
if(searchFormBoat.val()!==""){
searchFormBoat.find("."+$("#searchFormPolice").val()).show();
searchFormBoat.removeAttr("disabled");
}
$("#dateSelectorDiv").datepicker({
format: "yyyy-mm-dd", format: "yyyy-mm-dd",
language: "ko" language: "ko",
}); autoclose: true
$("#paymentPaymentDate").datepicker({
format: "yyyy-mm-dd",
language: "ko"
});
$("#consignmentStartDate").datepicker({
format: "yyyy-mm-dd",
language: "ko"
});
$("#consignmentEndDate").datepicker({
format: "yyyy-mm-dd",
language: "ko"
});
$("#confiscationDate").datepicker({
format: "yyyy-mm-dd",
language: "ko"
});
$("#boatDisposalDate").datepicker({
format: "yyyy-mm-dd",
language: "ko"
});
$("#directHandoverDate").datepicker({
format: "yyyy-mm-dd",
language: "ko"
});
$("#fieldIvsgtNapoDate").datepicker({
format: "yyyy-mm-dd",
language: "ko"
});
$("#fieldIvsgtReleaseDate").datepicker({
format: "yyyy-mm-dd",
language: "ko"
});
$("#pressurizedStartDate").datepicker({
format: "yyyy-mm-dd",
language: "ko"
});
$("#pressurizedEndDate").datepicker({
format: "yyyy-mm-dd",
language: "ko"
}); });
}); });
$(document).on('change', '#searchFormPolice', function (){
const searchFormBoat = $("#searchFormBoat")
searchFormBoat.find("option").hide()
if(this.value !== ""){
searchFormBoat.removeAttr("disabled")
searchFormBoat.find("."+this.value).show();
}else{
searchFormBoat.attr("disabled", "disabled")
}
})
$(document).on('click', '#searchFormBtn', function (){
const btn = $(this)
if(btn.attr("data-state")==="hide"){
$(".subSearchParam").show();
btn.attr("data-state", "show");
btn.empty().append("조건<br>숨기기");
}else{
$(".subSearchParam").hide();
btn.attr("data-state", "hide");
btn.empty().append("조건<br>펼치기");
}
})
$(document).on('click', '#crackdownStatusAddBtn', function () { $(document).on('click', '#crackdownStatusAddBtn', function () {
getCrackdownStatusEditModal(null); getCrackdownStatusEditModal(null);
}); });
@ -287,11 +275,13 @@ function getCrackdownStatusEditModal(cdsKey){
$("#napoDt").datetimepicker({ $("#napoDt").datetimepicker({
format:'Y-m-d H:i', format:'Y-m-d H:i',
lang:'kr' lang:'kr',
autoclose: true
}); });
$("#birthdate").datepicker({ $("#birthdate").datepicker({
format: "yyyy-mm-dd", format: "yyyy-mm-dd",
language: "ko" language: "ko",
autoclose: true
}); });
$("#paymentPaymentDt").datetimepicker({ $("#paymentPaymentDt").datetimepicker({
format:'Y-m-d H:i', format:'Y-m-d H:i',
@ -299,31 +289,38 @@ function getCrackdownStatusEditModal(cdsKey){
}); });
$("#consignmentStartDt").datepicker({ $("#consignmentStartDt").datepicker({
format: "yyyy-mm-dd", format: "yyyy-mm-dd",
language: "ko" language: "ko",
autoclose: true
}); });
$("#consignmentEndDt").datepicker({ $("#consignmentEndDt").datepicker({
format: "yyyy-mm-dd", format: "yyyy-mm-dd",
language: "ko" language: "ko",
autoclose: true
}); });
$("#evictionDt").datepicker({ $("#evictionDt").datepicker({
format: "yyyy-mm-dd", format: "yyyy-mm-dd",
language: "ko" language: "ko",
autoclose: true
}); });
$("#returnDt").datepicker({ $("#returnDt").datepicker({
format: "yyyy-mm-dd", format: "yyyy-mm-dd",
language: "ko" language: "ko",
autoclose: true
}); });
$("#confiscationDt").datepicker({ $("#confiscationDt").datepicker({
format: "yyyy-mm-dd", format: "yyyy-mm-dd",
language: "ko" language: "ko",
autoclose: true
}); });
$("#boatDisposalDt").datepicker({ $("#boatDisposalDt").datepicker({
format: "yyyy-mm-dd", format: "yyyy-mm-dd",
language: "ko" language: "ko",
autoclose: true
}); });
$("#directHandoverDt").datepicker({ $("#directHandoverDt").datepicker({
format: "yyyy-mm-dd", format: "yyyy-mm-dd",
language: "ko" language: "ko",
autoclose: true
}); });
$("#fieldIvsgtNapoDt").datetimepicker({ $("#fieldIvsgtNapoDt").datetimepicker({
format:'Y-m-d H:i', format:'Y-m-d H:i',

View File

@ -1,5 +1,27 @@
let selectedList = []; let selectedList = [];
let fileList = []; let fileList = [];
$(function (){
const searchFormBoat = $("#searchFormBoat")
if(searchFormBoat.val()!==""){
searchFormBoat.find("."+$("#searchFormPolice").val()).show();
searchFormBoat.removeAttr("disabled");
}
$("#dateSelectorDiv").datepicker({
format: "yyyy-mm-dd",
language: "ko",
autoclose: true
});
})
$(document).on('change', '#searchFormPolice', function (){
const searchFormBoat = $("#searchFormBoat")
searchFormBoat.find("option").hide()
if(this.value !== ""){
searchFormBoat.removeAttr("disabled")
searchFormBoat.find("."+this.value).show();
}else{
searchFormBoat.attr("disabled", "disabled")
}
})
$(document).on('click', '#getFishingBoatEditModalBtn', function (){ $(document).on('click', '#getFishingBoatEditModalBtn', function (){
getFishingBoatEditModal(null); getFishingBoatEditModal(null);
}) })

View File

@ -1,11 +1,13 @@
$(function(){ $(function(){
$("#dateSelectorDiv").datepicker({ $("#dateSelectorDiv").datepicker({
format: "yyyy-mm-dd", format: "yyyy-mm-dd",
language: "ko" language: "ko",
autoclose: true
}); });
$(".dateSelector").datepicker({ $(".dateSelector").datepicker({
format: "yyyy-mm-dd", format: "yyyy-mm-dd",
language: "ko" language: "ko",
autoclose: true
}); });
}); });
@ -266,7 +268,8 @@ $(document).on('change', '#purpose', function (){
$(function(){ $(function(){
$("#datePickerDiv").datepicker({ $("#datePickerDiv").datepicker({
format: "yyyy-mm-dd", format: "yyyy-mm-dd",
language: "ko" language: "ko",
autoclose: true
}); });
}); });
@ -299,7 +302,8 @@ function makeSpiInfoDiv(name) {
); );
$("#stayQualificationDiv").datepicker({ $("#stayQualificationDiv").datepicker({
format: "yyyy-mm-dd", format: "yyyy-mm-dd",
language: "ko" language: "ko",
autoclose: true
}); });
} }
@ -433,11 +437,13 @@ function getIcaEditModal(icaKey){
$("#icaEditModal").modal('show'); $("#icaEditModal").modal('show');
$("#crimeAwarenessDtDiv").datepicker({ $("#crimeAwarenessDtDiv").datepicker({
format: "yyyy-mm-dd", format: "yyyy-mm-dd",
language: "ko" language: "ko",
autoclose: true
}); });
$("#caseSentDtDiv").datepicker({ $("#caseSentDtDiv").datepicker({
format: "yyyy-mm-dd", format: "yyyy-mm-dd",
language: "ko" language: "ko",
autoclose: true
}); });
$("[name='caseOverview']").summernote({ $("[name='caseOverview']").summernote({
lang:'ko-KR', lang:'ko-KR',

View File

@ -1,23 +1,8 @@
$(function(){ $(function(){
$("#consignmentStartDate").datepicker({ $("#dateSelectorDiv").datepicker({
format: "yyyy-mm-dd", format: "yyyy-mm-dd",
language: "ko" language: "ko",
}); autoclose: true
$("#consignmentEndDate").datepicker({
format: "yyyy-mm-dd",
language: "ko"
});
$("#returnDate").datepicker({
format: "yyyy-mm-dd",
language: "ko"
});
$("#confiscationDate").datepicker({
format: "yyyy-mm-dd",
language: "ko"
});
$("#boatDisposalDate").datepicker({
format: "yyyy-mm-dd",
language: "ko"
}); });
}); });
$(document).on('click', '#processResultAddBtn', function () { $(document).on('click', '#processResultAddBtn', function () {
@ -202,23 +187,28 @@ function getProcessResultAddModal(){
$("#consignmentStartDt").datepicker({ $("#consignmentStartDt").datepicker({
format: "yyyy-mm-dd", format: "yyyy-mm-dd",
language: "ko" language: "ko",
autoclose: true
}); });
$("#consignmentEndDt").datepicker({ $("#consignmentEndDt").datepicker({
format: "yyyy-mm-dd", format: "yyyy-mm-dd",
language: "ko" language: "ko",
autoclose: true
}); });
$("#returnDt").datepicker({ $("#returnDt").datepicker({
format: "yyyy-mm-dd", format: "yyyy-mm-dd",
language: "ko" language: "ko",
autoclose: true
}); });
$("#confiscationDt").datepicker({ $("#confiscationDt").datepicker({
format: "yyyy-mm-dd", format: "yyyy-mm-dd",
language: "ko" language: "ko",
autoclose: true
}); });
$("#boatDisposalDt").datepicker({ $("#boatDisposalDt").datepicker({
format: "yyyy-mm-dd", format: "yyyy-mm-dd",
language: "ko" language: "ko",
autoclose: true
}); });
}, },
error:function(){ error:function(){
@ -242,23 +232,28 @@ function getProcessResultEditModal(prKey){
$("#consignmentStartDt").datepicker({ $("#consignmentStartDt").datepicker({
format: "yyyy-mm-dd", format: "yyyy-mm-dd",
language: "ko" language: "ko",
autoclose: true
}); });
$("#consignmentEndDt").datepicker({ $("#consignmentEndDt").datepicker({
format: "yyyy-mm-dd", format: "yyyy-mm-dd",
language: "ko" language: "ko",
autoclose: true
}); });
$("#returnDt").datepicker({ $("#returnDt").datepicker({
format: "yyyy-mm-dd", format: "yyyy-mm-dd",
language: "ko" language: "ko",
autoclose: true
}); });
$("#confiscationDt").datepicker({ $("#confiscationDt").datepicker({
format: "yyyy-mm-dd", format: "yyyy-mm-dd",
language: "ko" language: "ko",
autoclose: true
}); });
$("#boatDisposalDt").datepicker({ $("#boatDisposalDt").datepicker({
format: "yyyy-mm-dd", format: "yyyy-mm-dd",
language: "ko" language: "ko",
autoclose: true
}); });
}, },
error:function(){ error:function(){

View File

@ -163,7 +163,8 @@ function getSailorEditModal(sailorKey){
$("#birthdate").datepicker({ $("#birthdate").datepicker({
format: "yyyy-mm-dd", format: "yyyy-mm-dd",
language: "ko" language: "ko",
autoclose: true
}); });
}, },
error:function(){ error:function(){
@ -183,7 +184,8 @@ function getSailorAddModal(){
$("#birthdate").datepicker({ $("#birthdate").datepicker({
format: "yyyy-mm-dd", format: "yyyy-mm-dd",
language: "ko" language: "ko",
autoclose: true
}); });
}, },
error:function(){ error:function(){

View File

@ -191,7 +191,8 @@ function showModal(piSeq){
$(function(){ $(function(){
$("#startDate").datepicker({ $("#startDate").datepicker({
format: "yyyy-mm-dd", format: "yyyy-mm-dd",
language: "ko" language: "ko",
autoclose: true
}); });
}) })

View File

@ -10,7 +10,8 @@ $(document).on('click', '#addPartWork', function (){
setUploadDiv(); setUploadDiv();
$("#workDt").datepicker({ $("#workDt").datepicker({
format: "yyyy-mm-dd", format: "yyyy-mm-dd",
language: "ko" language: "ko",
autoclose: true
}); });
$("#workInfo").summernote({ $("#workInfo").summernote({
lang:'ko-KR', lang:'ko-KR',
@ -110,7 +111,8 @@ function showModal(pwSeq,piSeq){
setUploadDiv(); setUploadDiv();
$("#mWorkDt").datepicker({ $("#mWorkDt").datepicker({
format: "yyyy-mm-dd", format: "yyyy-mm-dd",
language: "ko" language: "ko",
autoclose: true
}); });
$("#mWorkInfo").summernote({ $("#mWorkInfo").summernote({
lang:'ko-KR', lang:'ko-KR',

View File

@ -66,7 +66,8 @@ $(document).on('change', '#searchArrestCd', function (){
$(function(){ $(function(){
$("#dateSelectorDiv").datepicker({ $("#dateSelectorDiv").datepicker({
format: "yyyy-mm-dd", format: "yyyy-mm-dd",
language: "ko" language: "ko",
autoclose: true
}); });
}); });

View File

@ -75,11 +75,13 @@ $(document).on('click', '#eduAddBtn', function (){
) )
$(".eduSdate").datepicker({ $(".eduSdate").datepicker({
format: "yyyy-mm-dd", format: "yyyy-mm-dd",
language: "ko" language: "ko",
autoclose: true
}); });
$(".eduEdate").datepicker({ $(".eduEdate").datepicker({
format: "yyyy-mm-dd", format: "yyyy-mm-dd",
language: "ko" language: "ko",
autoclose: true
}); });
eduList.push({userSeq:userSeq, eduName:"",eduSdate:"",eduEdate:"",eduRa:""}); eduList.push({userSeq:userSeq, eduName:"",eduSdate:"",eduEdate:"",eduRa:""});
}) })

View File

@ -173,11 +173,13 @@ $(document).on('click', '.historyInfoTr', function (){
$(document).ready( function() { $(document).ready( function() {
$("#aptDt").datepicker({ $("#aptDt").datepicker({
format: "yyyy-mm-dd", format: "yyyy-mm-dd",
language: "ko" language: "ko",
autoclose: true
}); });
$(".tcDt").datepicker({ $(".tcDt").datepicker({
format: "yyyy-mm-dd", format: "yyyy-mm-dd",
language: "ko" language: "ko",
autoclose: true
}); });
}); });
@ -213,7 +215,8 @@ function revisionHistory(trKey,verNo,url){
$("#translatorEditModal").modal('show'); $("#translatorEditModal").modal('show');
$("#viewAptDt").datepicker({ $("#viewAptDt").datepicker({
format: "yyyy-mm-dd", format: "yyyy-mm-dd",
language: "ko" language: "ko",
autoclose: true
}); });
}, },
error:function(){ error:function(){
@ -265,7 +268,8 @@ $(document).on('click', '#crrAddBtn', function (){
) )
$(".tcDt").datepicker({ $(".tcDt").datepicker({
format: "yyyy-mm-dd", format: "yyyy-mm-dd",
language: "ko" language: "ko",
autoclose: true
}); });
trCarrerList.push({translatorKey:trKey, hisGubun:"",tcDt:"",contents:"",remark:""}); trCarrerList.push({translatorKey:trKey, hisGubun:"",tcDt:"",contents:"",remark:""});
}) })

View File

@ -184,7 +184,7 @@
<input type="hidden" id="modalUrl" value="/modal/userModal"> <input type="hidden" id="modalUrl" value="/modal/userModal">
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button> <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div> </div>
<div class="modal-body" id="subModalBody"> <div class="modal-body text-nowrap" id="subModalBody">
<div class="row"> <div class="row">
<div class="col-12"> <div class="col-12">
<form method="get" action="#" id="modalSearchForm"> <form method="get" action="#" id="modalSearchForm">

View File

@ -1,6 +1,5 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="ko" xmlns:th="http://www.thymeleaf.org" <html lang="ko" xmlns:th="http://www.thymeleaf.org"
xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity5"
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout" xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
layout:decorate="~{layout/layout}"> layout:decorate="~{layout/layout}">
<th:block layout:fragment="script"> <th:block layout:fragment="script">
@ -19,9 +18,7 @@
<div class="col-auto"><p class="mb-0 mt-2">외사통계 > 불법조업외국어선 > 불법조업 외국어선 단속현황</p></div> <div class="col-auto"><p class="mb-0 mt-2">외사통계 > 불법조업외국어선 > 불법조업 외국어선 단속현황</p></div>
</div> </div>
<div class="row mx-0"> <div class="row mx-0">
<div class="col-12 card bg-light"> <div class="col-12 card bg-light text-center">
<div class="card-body">
<div class="card">
<div class="card-body"> <div class="card-body">
<form method="get" th:action="@{/faStatistics/crackdownStatus}" id="cdsSearchForm"> <form method="get" th:action="@{/faStatistics/crackdownStatus}" id="cdsSearchForm">
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}"> <input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
@ -44,12 +41,11 @@
</select> </select>
</div> </div>
</div> </div>
<div class="col-10"> <div class="col-8">
<div class="row justify-content-between"> <div class="row">
<div class="col-auto"> <div class="col-11">
<input class="form-control form-control-sm" name="napoDate" id="napoDate" placeholder="나포일시" th:value="${#temporals.format(searchParams.napoDate, 'yyyy-MM-dd')}"> <div class="row justify-content-end pb-1">
</div> <div class="col-2">
<div class="col-auto">
<select class="form-select form-select-sm violation" name="violation"> <select class="form-select form-select-sm violation" name="violation">
<option value="">위반내용</option> <option value="">위반내용</option>
<th:block th:each="commonCode:${session.commonCode.get('VT')}"> <th:block th:each="commonCode:${session.commonCode.get('VT')}">
@ -58,10 +54,10 @@
</th:block> </th:block>
</select> </select>
</div> </div>
<div class="col-auto"> <div class="col-2">
<input class="form-control form-control-sm" name="napoSeaPointDetail" id="napoSeaPointDetail" placeholder="위반장소" th:value="${searchParams.napoSeaPointDetail}"> <input class="form-control form-control-sm" name="napoSeaPointDetail" id="napoSeaPointDetail" placeholder="위반장소" th:value="${searchParams.napoSeaPointDetail}">
</div> </div>
<div class="col-auto"> <div class="col-2">
<select class="form-select form-select-sm" name="invasionType"> <select class="form-select form-select-sm" name="invasionType">
<option value="">침범유형</option> <option value="">침범유형</option>
<th:block th:each="commonCode:${session.commonCode.get('IST')}"> <th:block th:each="commonCode:${session.commonCode.get('IST')}">
@ -70,35 +66,17 @@
</th:block> </th:block>
</select> </select>
</div> </div>
<div class="col-auto"> <div class="col-2">
<select class="form-select form-select-sm" name="nll"> <select class="form-select form-select-sm" name="nll">
<option value="">NLL</option> <option value="">NLL</option>
<option value="Y" th:selected="${searchParams.nll == 'Y'}">O</option> <option value="Y" th:selected="${searchParams.nll == 'Y'}">O</option>
<option value="N" th:selected="${searchParams.nll == 'N'}">X</option> <option value="N" th:selected="${searchParams.nll == 'N'}">X</option>
</select> </select>
</div> </div>
<div class="col-auto"> <div class="col-2">
<input type="number" min="0" class="form-control form-control-sm" name="obstrExspdCnt" id="obstrExspdCnt" placeholder="인적피해 발생건수" th:value="${searchParams.obstrExspdCnt}"> <input class="form-control form-control-sm" name="mmsi" id="mmsi" placeholder="MMSI.NO" th:value="${searchParams.mmsi}">
</div> </div>
<div class="col-auto"> <div class="col-2">
<input type="number" min="0" class="form-control form-control-sm" name="personDamageCnt" id="personDamageCnt" placeholder="인적피해 피해인원" th:value="${searchParams.personDamageCnt}">
</div>
<div class="col-auto">
<input type="number" min="0" class="form-control form-control-sm" name="personDamageAmount" id="personDamageAmount" placeholder="인적피해 피해액" th:value="${searchParams.personDamageAmount}">
</div>
<div class="col-auto">
<input class="form-control form-control-sm" name="personDamageDetail" id="personDamageDetail" placeholder="인적피해 상세내용" th:value="${searchParams.personDamageDetail}">
</div>
<div class="col-auto">
<input type="number" min="0" class="form-control form-control-sm" name="materialDamageCnt" id="materialDamageCnt" placeholder="물적피해 발생건수" th:value="${searchParams.materialDamageCnt}">
</div>
<div class="col-auto">
<input type="number" min="0" class="form-control form-control-sm" name="materialDamageAmount" id="materialDamageAmount" placeholder="물적피해 피해액" th:value="${searchParams.materialDamageAmount}">
</div>
<div class="col-auto">
<input class="form-control form-control-sm" name="materialDamageDetail" id="materialDamageDetail" placeholder="물적피해 상세내용" th:value="${searchParams.materialDamageDetail}">
</div>
<div class="col-auto">
<select class="form-select form-select-sm" name="caseAgency"> <select class="form-select form-select-sm" name="caseAgency">
<option value="">사건담당기관</option> <option value="">사건담당기관</option>
<th:block th:each="commonCode:${session.commonCode.get('ATA')}"> <th:block th:each="commonCode:${session.commonCode.get('ATA')}">
@ -107,8 +85,10 @@
</th:block> </th:block>
</select> </select>
</div> </div>
<div class="col-auto"> </div>
<select class="form-select form-select-sm" name="crackdownPolice"> <div class="row justify-content-end pb-1">
<div class="col-2">
<select class="form-select form-select-sm" name="crackdownPolice" id="searchFormPolice">
<option value="">단속경찰서</option> <option value="">단속경찰서</option>
<th:block th:each="commonCode:${session.commonCode.get('CPO')}"> <th:block th:each="commonCode:${session.commonCode.get('CPO')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" <option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}"
@ -116,78 +96,20 @@
</th:block> </th:block>
</select> </select>
</div> </div>
<div class="col-auto"> <div class="col-2">
<select class="form-select form-select-sm" name="crackdownBoat"> <select class="form-select form-select-sm" name="crackdownBoat" id="searchFormBoat" disabled>
<option value="">단속함정</option> <option value="">단속함정</option>
<th:block th:each="num : ${#numbers.sequence(1,#lists.size(session.commonCode.get('CPO')))}"> <th:block th:each="cpoNum:${#numbers.sequence(1, #lists.size(session.commonCode.get('CPO')))}">
<th:block th:if="${'CPO'+num == searchParams.crackdownPolice}" th:each="commonCode:${session.commonCode.get('CPO'+num)}"> <th:block th:each="code:${session.commonCode.get('CPO'+cpoNum)}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${searchParams.crackdownBoat eq commonCode.itemCd}"></option> <option th:class="${code.categoryCd}" th:value="${code.itemCd}" th:text="${code.itemValue}" th:selected="${code.itemCd eq searchParams.crackdownBoat}" style="display: none;"></option>
</th:block> </th:block>
</th:block> </th:block>
</select> </select>
</div> </div>
<div class="col-auto"> <div class="col-2">
<input class="form-control form-control-sm" name="mmsi" id="mmsi" placeholder="MMSI.NO" th:value="${searchParams.mmsi}"> <input class="form-control form-control-sm" name="distance" id="distance" placeholder="거리" th:value="${searchParams.distance}">
</div> </div>
<div class="col-auto"> <div class="col-2">
<input class="form-control form-control-sm" name="boatNameKr" id="boatNameKr" placeholder="선명" th:value="${searchParams.boatNameKr}">
</div>
<div class="col-auto">
<div style="display: flex;">
<input type="number" min="0" class="form-control form-control-sm" name="tonStartCnt" id="tonStartCnt" placeholder="톤수 (~이상)" th:value="${searchParams.tonStartCnt}">
~<input type="number" min="0" class="form-control form-control-sm" name="tonEndCnt" id="tonEndCnt" placeholder="톤수 (~이하)" th:value="${searchParams.tonEndCnt}">
</div>
</div>
<div class="col-auto">
<select class="form-select form-select-sm" name="boatMaterial" id="boatMaterial">
<option value="">선질</option>
<th:block th:each="commonCode:${session.commonCode.get('BM')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}"
th:selected="${commonCode.itemCd eq searchParams.boatMaterial}"></option>
</th:block>
<option value="etc">직접입력</option>
</select>
</div>
<div class="col-auto">
<input class="form-control form-control-sm" name="boatNnySung" id="boatNnySung" placeholder="선적 성" th:value="${searchParams.boatNnySung}">
</div>
<div class="col-auto">
<input class="form-control form-control-sm" name="boatNnySi" id="boatNnySi" placeholder="선적 시" th:value="${searchParams.boatNnySi}">
</div>
<div class="col-auto">
<input class="form-control form-control-sm" name="sailorNameKr" id="sailorNameKr" placeholder="선장명" th:value="${searchParams.sailorNameKr}">
</div>
<div class="col-auto">
<select class="form-select form-select-sm" name="fisheryType" id="fisheryType">
<option value="">선종</option>
<th:block th:each="commonCode:${session.commonCode.get('FT')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}"
th:selected="${commonCode.itemCd eq searchParams.fisheryType}"></option>
</th:block>
</select>
</div>
<div class="col-auto">
<input class="form-control form-control-sm" name="catchFishSpecies" id="catchFishSpecies" placeholder="어획물 축소기재 어종" th:value="${searchParams.catchFishSpecies}">
</div>
<!--<div class="col-auto">
<input class="form-control form-control-sm" name="catchCnt" id="catchCnt" placeholder="어획물 축소기재 수량" th:value="${searchParams.catchCnt}">
</div>-->
<div class="col-auto">
<input class="form-control form-control-sm" name="offenseFishSpecies" id="offenseFishSpecies" placeholder="범칙물 어종" th:value="${searchParams.offenseFishSpecies}">
</div>
<!--<div class="col-auto">
<input class="form-control form-control-sm" name="offenseCatchCnt" id="offenseCatchCnt" placeholder="범칙물 어획량" th:value="${searchParams.offenseCatchCnt}">
</div>
<div class="col-auto">
<input class="form-control form-control-sm" name="offenseIllegalWasteQuantity" id="offenseIllegalWasteQuantity" placeholder="범칙물 폐기량" th:value="${searchParams.offenseIllegalWasteQuantity}">
</div>
<div class="col-auto">
<input class="form-control form-control-sm" name="offenseQuantity" id="offenseQuantity" placeholder="범칙물 위판량" th:value="${searchParams.offenseQuantity}">
</div>
<div class="col-auto">
<input class="form-control form-control-sm" name="offenseAmount" id="offenseAmount" placeholder="범칙물 위판금액" th:value="${searchParams.offenseAmount}">
</div>-->
<div class="col-auto">
<select class="form-select form-select-sm" name="processStatus" id="processStatus"> <select class="form-select form-select-sm" name="processStatus" id="processStatus">
<option value="">처리현황</option> <option value="">처리현황</option>
<th:block th:each="commonCode:${session.commonCode.get('PR')}"> <th:block th:each="commonCode:${session.commonCode.get('PR')}">
@ -196,70 +118,71 @@
</th:block> </th:block>
</select> </select>
</div> </div>
<!--<div class="col-auto"> <div class="col-4">
<input class="form-control form-control-sm" name="damboPayment" id="damboPayment" placeholder="담보금 납부액" th:value="${searchParams.damboPayment}"> <div class="input-group w-auto input-daterange" id="dateSelectorDiv">
<select class="form-select form-select-sm w-30" name="dateSelector">
<option value="">조건선택</option>
<option value="napoDt" th:selected="${searchParams.dateSelector eq 'napoDt'}">나포일시</option>
<option value="evictionDt" th:selected="${searchParams.dateSelector eq 'evictionDt'}">퇴거일</option>
<option value="directHandoverDt" th:selected="${searchParams.dateSelector eq 'directHandoverDt'}">직접인계일</option>
<option value="consignmentDt" th:selected="${searchParams.dateSelector eq 'consignmentDt'}">위탁일</option>
<option value="confiscationDt" th:selected="${searchParams.dateSelector eq 'confiscationDt'}">몰수확정일</option>
<option value="boatDisposalDt" th:selected="${searchParams.dateSelector eq 'boatDisposalDt'}">폐선일</option>
<option value="returnDt" th:selected="${searchParams.dateSelector eq 'returnDt'}">환부일</option>
<option value="wrtDt" th:selected="${searchParams.dateSelector eq 'wrtDt'}">최종수정일</option>
</select>
<input type="text" class="form-control form-control-sm w-35" id="startDate" name="startDate" placeholder="시작일" autocomplete="off" readonly th:value="${searchParams.startDate}">
<input type="text" class="form-control form-control-sm w-35" id="endDate" name="endDate" placeholder="종료일" autocomplete="off" readonly th:value="${searchParams.endDate}">
</div> </div>
<div class="col-auto">
<input class="form-control form-control-sm" name="paymentPaymentDate" id="paymentPaymentDate" placeholder="담보금 납부일시" th:value="${#temporals.format(searchParams.paymentPaymentDate, 'yyyy-MM-dd')}">
</div> </div>
<div class="col-auto"> </div>
<input class="form-control form-control-sm" name="damboUnpaidAmount" id="damboUnpaidAmount" placeholder="담보금 미납액" th:value="${searchParams.damboUnpaidAmount}"> <div class="row justify-content-start pb-1 subSearchParam" style="display: none">
</div>--> <hr class="mb-1">
<div class="col-auto"> <label class="col-2 col-form-label col-form-label-sm">처리현황</label>
<div class="col-2">
<select class="form-select form-select-sm" name="isDamboUnpaidAmount" th:value="${searchParams.isDamboUnpaidAmount}"> <select class="form-select form-select-sm" name="isDamboUnpaidAmount" th:value="${searchParams.isDamboUnpaidAmount}">
<option value="">담보금 미납 여부</option> <option value="">담보금 미납 여부</option>
<option value="Y" th:selected="${searchParams.isDamboUnpaidAmount eq 'Y'}">O</option> <option value="Y" th:selected="${searchParams.isDamboUnpaidAmount eq 'Y'}">O</option>
<option value="N" th:selected="${searchParams.isDamboUnpaidAmount eq 'N'}">X</option> <option value="N" th:selected="${searchParams.isDamboUnpaidAmount eq 'N'}">X</option>
</select> </select>
</div> </div>
<div class="col-auto"> <div class="col-2">
<select class="form-select form-select-sm" name="isDirectHandoverDt" th:value="${searchParams.isDirectHandoverDt}"> <select class="form-select form-select-sm" name="isDirectHandoverDt" th:value="${searchParams.isDirectHandoverDt}">
<option value="">직접인계 여부</option> <option value="">직접인계 여부</option>
<option value="Y" th:selected="${searchParams.isDirectHandoverDt eq 'Y'}">O</option> <option value="Y" th:selected="${searchParams.isDirectHandoverDt eq 'Y'}">O</option>
<option value="N" th:selected="${searchParams.isDirectHandoverDt eq 'N'}">X</option> <option value="N" th:selected="${searchParams.isDirectHandoverDt eq 'N'}">X</option>
</select> </select>
</div> </div>
<div class="col-auto"> <div class="col-2">
<!--<input class="form-control form-control-sm" name="evictionDt" id="evictionDt" placeholder="퇴거일" th:value="${#temporals.format(searchParams.evictionDt, 'yyyy-MM-dd')}">-->
<select class="form-select form-select-sm" name="isEvictionDt" th:value="${searchParams.isEvictionDt}"> <select class="form-select form-select-sm" name="isEvictionDt" th:value="${searchParams.isEvictionDt}">
<option value="">퇴거여부</option> <option value="">퇴거여부</option>
<option value="Y" th:selected="${searchParams.isEvictionDt eq 'Y'}">O</option> <option value="Y" th:selected="${searchParams.isEvictionDt eq 'Y'}">O</option>
<option value="N" th:selected="${searchParams.isEvictionDt eq 'N'}">X</option> <option value="N" th:selected="${searchParams.isEvictionDt eq 'N'}">X</option>
</select> </select>
</div> </div>
<div class="col-auto"> <div class="col-2">
<!--<input class="form-control form-control-sm" name="returnDt" id="returnDt" placeholder="환부일" th:value="${#temporals.format(searchParams.returnDt, 'yyyy-MM-dd')}">-->
<select class="form-select form-select-sm" name="isReturnDt" th:value="${searchParams.isReturnDt}"> <select class="form-select form-select-sm" name="isReturnDt" th:value="${searchParams.isReturnDt}">
<option value="">환부여부</option> <option value="">환부여부</option>
<option value="Y" th:selected="${searchParams.isReturnDt eq 'Y'}">O</option> <option value="Y" th:selected="${searchParams.isReturnDt eq 'Y'}">O</option>
<option value="N" th:selected="${searchParams.isReturnDt eq 'N'}">X</option> <option value="N" th:selected="${searchParams.isReturnDt eq 'N'}">X</option>
</select> </select>
</div> </div>
<div class="col-auto"> <div class="col-2">
<select class="form-select form-select-sm" name="isConsignmentStartDt" th:value="${searchParams.isConsignmentStartDt}"> <select class="form-select form-select-sm" name="isConsignmentStartDt" th:value="${searchParams.isConsignmentStartDt}">
<option value="">위탁관리 여부</option> <option value="">위탁관리 여부</option>
<option value="Y" th:selected="${searchParams.isConsignmentStartDt eq 'Y'}">O</option> <option value="Y" th:selected="${searchParams.isConsignmentStartDt eq 'Y'}">O</option>
<option value="N" th:selected="${searchParams.isConsignmentStartDt eq 'N'}">X</option> <option value="N" th:selected="${searchParams.isConsignmentStartDt eq 'N'}">X</option>
</select> </select>
</div> </div>
<div class="col-auto"> <div class="col-2"></div>
<input class="form-control form-control-sm" name="consignmentStartDate" id="consignmentStartDate" placeholder="위탁시작일" th:value="${#temporals.format(searchParams.consignmentStartDate, 'yyyy-MM-dd')}"> <div class="col-2">
</div>
<div class="col-auto">
<input class="form-control form-control-sm" name="consignmentEndDate" id="consignmentEndDate" placeholder="위탁종료일" th:value="${#temporals.format(searchParams.consignmentEndDate, 'yyyy-MM-dd')}">
</div>
<div class="col-auto">
<!--<input class="form-control form-control-sm" name="confiscationDt" id="confiscationDt" placeholder="몰수확정일" th:value="${#temporals.format(searchParams.confiscationDt, 'yyyy-MM-dd')}">-->
<select class="form-select form-select-sm" name="isConfiscationDt" th:value="${searchParams.isConfiscationDt}"> <select class="form-select form-select-sm" name="isConfiscationDt" th:value="${searchParams.isConfiscationDt}">
<option value="">침몰여부</option> <option value="">침몰여부</option>
<option value="Y" th:selected="${searchParams.isConfiscationDt eq 'Y'}">O</option> <option value="Y" th:selected="${searchParams.isConfiscationDt eq 'Y'}">O</option>
<option value="N" th:selected="${searchParams.isConfiscationDt eq 'N'}">X</option> <option value="N" th:selected="${searchParams.isConfiscationDt eq 'N'}">X</option>
</select> </select>
</div> </div>
<!--<div class="col-auto"> <div class="col-2">
<input class="form-control form-control-sm" name="boatDisposalDt" id="boatDisposalDt" placeholder="폐선일" th:value="${#temporals.format(searchParams.boatDisposalDt, 'yyyy-MM-dd')}">
</div>-->
<div class="col-auto">
<select class="form-select form-select-sm" name="boatDisposalType" th:value="${searchParams.boatDisposalType}"> <select class="form-select form-select-sm" name="boatDisposalType" th:value="${searchParams.boatDisposalType}">
<option value="">폐선종류</option> <option value="">폐선종류</option>
<th:block th:each="commonCode:${session.commonCode.get('BDT')}"> <th:block th:each="commonCode:${session.commonCode.get('BDT')}">
@ -268,81 +191,150 @@
</th:block> </th:block>
</select> </select>
</div> </div>
<div class="col-auto"> <div class="col-2">
<input class="form-control form-control-sm" name="directHandoverDate" id="directHandoverDate" placeholder="직접인계일" th:value="${#temporals.format(searchParams.directHandoverDate, 'yyyy-MM-dd')}">
</div>
<div class="col-auto">
<input class="form-control form-control-sm" name="handoverSeaPointDetail" id="handoverSeaPointDetail" placeholder="직접인계 해점" th:value="${searchParams.handoverSeaPointDetail}"> <input class="form-control form-control-sm" name="handoverSeaPointDetail" id="handoverSeaPointDetail" placeholder="직접인계 해점" th:value="${searchParams.handoverSeaPointDetail}">
</div> </div>
<div class="col-auto"> <div class="col-2">
<input class="form-control form-control-sm" name="handoverBoat" id="handoverBoat" placeholder="인계함정" th:value="${searchParams.handoverBoat}"> <input class="form-control form-control-sm" name="handoverBoat" id="handoverBoat" placeholder="인계함정" th:value="${searchParams.handoverBoat}">
</div> </div>
<div class="col-auto"> <div class="col-2">
<input class="form-control form-control-sm" name="middleTakeoverBoat" id="middleTakeoverBoat" placeholder="중측 인수함정" th:value="${searchParams.middleTakeoverBoat}"> <input class="form-control form-control-sm" name="middleTakeoverBoat" id="middleTakeoverBoat" placeholder="중측 인수함정" th:value="${searchParams.middleTakeoverBoat}">
</div> </div>
<div class="col-auto"> </div>
<div class="row justify-content-start pb-1 subSearchParam" style="display: none">
<hr class="mb-1">
<label class="col-2 col-form-label col-form-label-sm">어선정보</label>
<div class="col-2">
<input class="form-control form-control-sm" name="boatNameKr" id="boatNameKr" placeholder="선명" th:value="${searchParams.boatNameKr}">
</div>
<div class="col-2">
<div class="input-group">
<input type="number" min="0" class="form-control form-control-sm" name="tonStartCnt" id="tonStartCnt" placeholder="톤수" th:value="${searchParams.tonStartCnt}">
~<input type="number" min="0" class="form-control form-control-sm" name="tonEndCnt" id="tonEndCnt" placeholder="톤수" th:value="${searchParams.tonEndCnt}">
</div>
</div>
<div class="col-2">
<select class="form-select form-select-sm" name="boatMaterial" id="boatMaterial">
<option value="">선질</option>
<th:block th:each="commonCode:${session.commonCode.get('BM')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}"
th:selected="${commonCode.itemCd eq searchParams.boatMaterial}"></option>
</th:block>
</select>
</div>
<div class="col-2">
<input class="form-control form-control-sm" name="boatNnySung" id="boatNnySung" placeholder="선적 성" th:value="${searchParams.boatNnySung}">
</div>
<div class="col-2">
<input class="form-control form-control-sm" name="boatNnySi" id="boatNnySi" placeholder="선적 시" th:value="${searchParams.boatNnySi}">
</div>
<div class="col-2"></div>
<div class="col-2">
<input class="form-control form-control-sm" name="sailorNameKr" id="sailorNameKr" placeholder="선장명" th:value="${searchParams.sailorNameKr}">
</div>
<div class="col-2">
<select class="form-select form-select-sm" name="fisheryType" id="fisheryType">
<option value="">선종</option>
<th:block th:each="commonCode:${session.commonCode.get('FT')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}"
th:selected="${commonCode.itemCd eq searchParams.fisheryType}"></option>
</th:block>
</select>
</div>
<div class="col-2">
<input class="form-control form-control-sm" name="catchFishSpecies" id="catchFishSpecies" placeholder="어획물 축소기재 어종" th:value="${searchParams.catchFishSpecies}">
</div>
<div class="col-2">
<input class="form-control form-control-sm" name="offenseFishSpecies" id="offenseFishSpecies" placeholder="범칙물 어종" th:value="${searchParams.offenseFishSpecies}">
</div>
<div class="col-2"></div>
<label class="col-2 col-form-label col-form-label-sm">압수어구</label>
<div class="col-2">
<input class="form-control form-control-sm" name="confiscationFrame" id="confiscationFrame" placeholder="틀" th:value="${searchParams.confiscationFrame}">
</div>
<div class="col-2">
<input class="form-control form-control-sm" name="confiscationWidth" id="confiscationWidth" placeholder="폭" th:value="${searchParams.confiscationWidth}">
</div>
<div class="col-2">
<input class="form-control form-control-sm" name="confiscationJo" id="confiscationJo" placeholder="조" th:value="${searchParams.confiscationJo}">
</div>
<div class="col-2">
<input class="form-control form-control-sm" name="confiscationGae" id="confiscationGae" placeholder="개" th:value="${searchParams.confiscationGae}">
</div>
<div class="col-2">
<input class="form-control form-control-sm" name="confiscationEtc" id="confiscationEtc" placeholder="기타" th:value="${searchParams.confiscationEtc}">
</div>
</div>
<div class="row justify-content-start pb-1 subSearchParam" style="display: none">
<hr class="mb-1">
<label class="col-2 col-form-label col-form-label-sm">피해내용</label>
<div class="col-2">
<input type="number" min="0" class="form-control form-control-sm" name="obstrExspdCnt" id="obstrExspdCnt" placeholder="인적피해 발생건수" th:value="${searchParams.obstrExspdCnt}">
</div>
<div class="col-2">
<input type="number" min="0" class="form-control form-control-sm" name="personDamageCnt" id="personDamageCnt" placeholder="인적피해 피해인원" th:value="${searchParams.personDamageCnt}">
</div>
<div class="col-2">
<input type="number" min="0" class="form-control form-control-sm" name="personDamageAmount" id="personDamageAmount" placeholder="인적피해 피해액" th:value="${searchParams.personDamageAmount}">
</div>
<div class="col-2">
<input class="form-control form-control-sm" name="personDamageDetail" id="personDamageDetail" placeholder="인적피해 상세내용" th:value="${searchParams.personDamageDetail}">
</div>
<div class="col-2"></div>
<div class="col-2"></div>
<div class="col-2">
<input type="number" min="0" class="form-control form-control-sm" name="materialDamageCnt" id="materialDamageCnt" placeholder="물적피해 발생건수" th:value="${searchParams.materialDamageCnt}">
</div>
<div class="col-2"></div>
<div class="col-2">
<input type="number" min="0" class="form-control form-control-sm" name="materialDamageAmount" id="materialDamageAmount" placeholder="물적피해 피해액" th:value="${searchParams.materialDamageAmount}">
</div>
<div class="col-2">
<input class="form-control form-control-sm" name="materialDamageDetail" id="materialDamageDetail" placeholder="물적피해 상세내용" th:value="${searchParams.materialDamageDetail}">
</div>
</div>
<div class="row justify-content-start subSearchParam" style="display: none">
<hr class="mb-1">
<label class="col-2 col-form-label col-form-label-sm">구속여부</label>
<div class="col-2">
<select class="form-select form-select-sm" name="captin"> <select class="form-select form-select-sm" name="captin">
<option value="">선장 구속여부</option> <option value="">선장</option>
<option value="Y" th:selected="${searchParams.captin eq 'Y'}">구속</option> <option value="Y" th:selected="${searchParams.captin eq 'Y'}">구속</option>
<option value="N" th:selected="${searchParams.captin eq 'N'}">불구속</option> <option value="N" th:selected="${searchParams.captin eq 'N'}">불구속</option>
</select> </select>
</div> </div>
<div class="col-auto"> <div class="col-2">
<select class="form-select form-select-sm" name="mate"> <select class="form-select form-select-sm" name="mate">
<option value="">향해장 구속여부</option> <option value="">향해장</option>
<option value="Y" th:selected="${searchParams.mate eq 'Y'}">구속</option> <option value="Y" th:selected="${searchParams.mate eq 'Y'}">구속</option>
<option value="N" th:selected="${searchParams.mate eq 'N'}">불구속</option> <option value="N" th:selected="${searchParams.mate eq 'N'}">불구속</option>
</select> </select>
</div> </div>
<div class="col-auto"> <div class="col-2">
<select class="form-select form-select-sm" name="warden"> <select class="form-select form-select-sm" name="warden">
<option value="">기관장 구속여부</option> <option value="">기관장</option>
<option value="Y" th:selected="${searchParams.warden eq 'Y'}">구속</option> <option value="Y" th:selected="${searchParams.warden eq 'Y'}">구속</option>
<option value="N" th:selected="${searchParams.warden eq 'N'}">불구속</option> <option value="N" th:selected="${searchParams.warden eq 'N'}">불구속</option>
</select> </select>
</div> </div>
<div class="col-auto">
<input class="form-control form-control-sm" name="fieldIvsgtNapoDate" id="fieldIvsgtNapoDate" placeholder="현장조사 나포일시" th:value="${#temporals.format(searchParams.fieldIvsgtNapoDate, 'yyyy-MM-dd')}">
</div>
<div class="col-auto">
<input class="form-control form-control-sm" name="fieldIvsgtReleaseDate" id="fieldIvsgtReleaseDate" placeholder="현장조사 석방일시" th:value="${#temporals.format(searchParams.fieldIvsgtReleaseDate, 'yyyy-MM-dd')}">
</div>
<!--<div class="col-auto">
<input class="form-control form-control-sm" name="pressurizedStartDt" id="pressurizedStartDt" placeholder="압송시작일" th:value="${#temporals.format(searchParams.pressurizedStartDt, 'yyyy-MM-dd')}">
</div>
<div class="col-auto">
<input class="form-control form-control-sm" name="pressurizedEndDt" id="pressurizedEndDt" placeholder="압송종료일" th:value="${#temporals.format(searchParams.pressurizedEndDt, 'yyyy-MM-dd')}">
</div>-->
<div class="col-auto">
<input class="form-control form-control-sm" name="distance" id="distance" placeholder="거리" th:value="${searchParams.distance}">
</div>
<div class="col-auto">
<input class="form-control form-control-sm" name="confiscationFrame" id="confiscationFrame" placeholder="틀" th:value="${searchParams.confiscationFrame}">
</div>
<div class="col-auto">
<input class="form-control form-control-sm" name="confiscationWidth" id="confiscationWidth" placeholder="폭" th:value="${searchParams.confiscationWidth}">
</div>
<div class="col-auto">
<input class="form-control form-control-sm" name="confiscationJo" id="confiscationJo" placeholder="조" th:value="${searchParams.confiscationJo}">
</div>
<div class="col-auto">
<input class="form-control form-control-sm" name="confiscationGae" id="confiscationGae" placeholder="개" th:value="${searchParams.confiscationGae}">
</div>
<div class="col-auto">
<input class="form-control form-control-sm" name="confiscationEtc" id="confiscationEtc" placeholder="기타" th:value="${searchParams.confiscationEtc}">
</div> </div>
</div> </div>
<div class="col-1 d-grid gap-2">
<input type="submit" class="btn btn-primary" id="searchBtn" value="검색">
<button type="button" class="btn btn-info" id="searchFormBtn" data-state="hide">조건<br>펼치기</button>
</div>
</div> </div>
<div class="col-auto">
<input type="submit" class="btn btn-sm btn-primary" id="searchBtn" value="검색">
</div> </div>
</div> </div>
</form> </form>
<div class="row justify-content-start" style="overflow: hidden; overflow-x: scroll"> <div class="card">
<table class="table table-sm table-hover table-bordered ws-nowrap" style="max-width: none; width: auto;" id="cdsTable"> <div class="card-body">
<thead class="align-middle text-center"> <div class="row">
<tr> <div class="col-12 overflow-auto">
<th rowspan="4">연번</th> <table class="table table-sm table-hover table-bordered text-nowrap" id="cdsTable">
<thead class="align-middle">
<tr class="table-secondary">
<!--<th rowspan="4">연번</th>-->
<th rowspan="4">나포일시</th> <th rowspan="4">나포일시</th>
<th rowspan="4">위반내용</th> <th rowspan="4">위반내용</th>
<th rowspan="4">위반장소</th> <th rowspan="4">위반장소</th>
@ -369,7 +361,7 @@
<th rowspan="4">영장청구 소요시간</th> <th rowspan="4">영장청구 소요시간</th>
<th colspan="5">압수어구</th> <th colspan="5">압수어구</th>
</tr> </tr>
<tr> <tr class="table-secondary">
<th rowspan="2">무허가 조업</th> <th rowspan="2">무허가 조업</th>
<th rowspan="2"> <th rowspan="2">
<div>특정금지</div> <div>특정금지</div>
@ -432,7 +424,7 @@
<th rowspan="2">개(통발)</th> <th rowspan="2">개(통발)</th>
<th rowspan="2">기타</th> <th rowspan="2">기타</th>
</tr> </tr>
<tr> <tr class="table-secondary">
<th>피해인원</th> <th>피해인원</th>
<th>피해액(만원)</th> <th>피해액(만원)</th>
<th rowspan="2">상세내용</th> <th rowspan="2">상세내용</th>
@ -442,7 +434,7 @@
<th>단순폐선</th> <th>단순폐선</th>
<th>폐선조건부공매</th> <th>폐선조건부공매</th>
</tr> </tr>
<tr> <tr class="table-secondary">
<th th:text="${#aggregates.sum(crackdownStatusList.?[invasionType == 'IST001'].![1]) ne null ? #aggregates.sum(crackdownStatusList.?[invasionType == 'IST001'].![1]) : 0}"></th> <th th:text="${#aggregates.sum(crackdownStatusList.?[invasionType == 'IST001'].![1]) ne null ? #aggregates.sum(crackdownStatusList.?[invasionType == 'IST001'].![1]) : 0}"></th>
<th th:text="${#aggregates.sum(crackdownStatusList.?[invasionType == 'IST002'].![1]) ne null ? #aggregates.sum(crackdownStatusList.?[invasionType == 'IST002'].![1]) : 0}"></th> <th th:text="${#aggregates.sum(crackdownStatusList.?[invasionType == 'IST002'].![1]) ne null ? #aggregates.sum(crackdownStatusList.?[invasionType == 'IST002'].![1]) : 0}"></th>
<th th:text="${#aggregates.sum(crackdownStatusList.?[invasionType == 'IST003'].![1]) ne null ? #aggregates.sum(crackdownStatusList.?[invasionType == 'IST003'].![1]) : 0}"></th> <th th:text="${#aggregates.sum(crackdownStatusList.?[invasionType == 'IST003'].![1]) ne null ? #aggregates.sum(crackdownStatusList.?[invasionType == 'IST003'].![1]) : 0}"></th>
@ -504,16 +496,20 @@
<th th:text="${#aggregates.sum(crackdownStatusList.?[fishingBoat.confiscationFrame != null && fishingBoat.confiscationEtc != ''].![1]) ne null ? #aggregates.sum(crackdownStatusList.?[fishingBoat.confiscationEtc != null && fishingBoat.confiscationEtc != ''].![1]) : 0}"></th> <th th:text="${#aggregates.sum(crackdownStatusList.?[fishingBoat.confiscationFrame != null && fishingBoat.confiscationEtc != ''].![1]) ne null ? #aggregates.sum(crackdownStatusList.?[fishingBoat.confiscationEtc != null && fishingBoat.confiscationEtc != ''].![1]) : 0}"></th>
</tr> </tr>
</thead> </thead>
<tbody class="table-group-divider align-middle text-center"> <tbody class="table-group-divider align-middle">
<th:block th:each="crackdownStatus:${crackdownStatusList}"> <th:block th:each="crackdownStatus:${crackdownStatusList}">
<tr class="tr" th:data-key="${crackdownStatus.cdsKey}"> <tr class="tr" th:data-key="${crackdownStatus.cdsKey}">
<td th:text="${crackdownStatus.cdsKey}"></td> <!--<td th:text="${crackdownStatus.cdsKey}"></td>-->
<td th:text="${#temporals.format(crackdownStatus.napoDt, 'yyyy-MM-dd HH:mm')}"></td> <td th:text="${#temporals.format(crackdownStatus.napoDt, 'yyyy-MM-dd HH:mm')}"></td>
<td> <td class="text-wrap min-width-300">
<th:block th:if="${#lists.size(crackdownStatus.violationList) >= 1}"> <th:block th:if="${#lists.size(crackdownStatus.violationList) >= 1}">
<th:block th:each="violation:${crackdownStatus.violationList}"> <th:block th:each="violation, i:${crackdownStatus.violationList}">
<th:block th:each="commonCode:${session.commonCode.get('VT')}"> <th:block th:each="commonCode:${session.commonCode.get('VT')}">
<div th:if="${violation.violation eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></div> <th:block th:if="${violation.violation eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></th:block>
</th:block>
<th:block th:if="${violation.violation ne null && !#strings.contains(violation.violation, 'VT')}" th:text="${violation.violation}"></th:block>
<th:block th:if="${#lists.size(crackdownStatus.violationList) >= 1 && i.index < #lists.size(crackdownStatus.violationList)-1}">
<th:block>, </th:block>
</th:block> </th:block>
</th:block> </th:block>
</th:block> </th:block>
@ -642,11 +638,14 @@
</table> </table>
</div> </div>
</div> </div>
</div> <div class="row justify-content-between pt-1">
<div class="row justify-content">
<div class="col-auto"> <div class="col-auto">
<button class="btn btn-sm btn-success" id="cdsDownExcel">엑셀 다운로드</button> <button class="btn btn-success" id="cdsDownExcel">엑셀 다운로드</button>
<button class="btn btn-sm btn-primary" id="crackdownStatusAddBtn">등록</button> </div>
<div class="col-auto">
<button class="btn btn-primary" id="crackdownStatusAddBtn">등록</button>
</div>
</div>
</div> </div>
</div> </div>
</div> </div>

View File

@ -61,7 +61,7 @@
</div> </div>
<label for="crackdownPolice" class="col-sm-1 col-form-label col-form-label-sm text-center">단속경찰서</label> <label for="crackdownPolice" class="col-sm-1 col-form-label col-form-label-sm text-center">단속경찰서</label>
<div class="col-sm-2"> <div class="col-sm-2">
<select class="form-select form-select-sm crackdownStatusInfo" name="crackdownPolice" id="crackdownPolice"> <select class="form-select form-select-sm crackdownStatusInfo crackdownPolice" name="crackdownPolice" id="crackdownPolice">
<option value="">선택</option> <option value="">선택</option>
<th:block th:each="code:${cpoList}"> <th:block th:each="code:${cpoList}">
<option th:value="${code.itemCd}" th:text="${code.itemValue}" th:selected="${code.itemCd eq crackdownStatus.crackdownPolice}"></option> <option th:value="${code.itemCd}" th:text="${code.itemValue}" th:selected="${code.itemCd eq crackdownStatus.crackdownPolice}"></option>
@ -70,7 +70,7 @@
</div> </div>
<label for="crackdownBoat" class="col-sm-1 col-form-label col-form-label-sm text-center">단속함정</label> <label for="crackdownBoat" class="col-sm-1 col-form-label col-form-label-sm text-center">단속함정</label>
<div class="col-sm-2"> <div class="col-sm-2">
<select class="form-select form-select-sm crackdownStatusInfo" name="crackdownBoat" id="crackdownBoat" th:data-boatcode="${crackdownStatus.crackdownBoat}" disabled> <select class="form-select form-select-sm crackdownStatusInfo crackdownBoat" name="crackdownBoat" id="crackdownBoat" th:data-boatcode="${crackdownStatus.crackdownBoat}" disabled>
<option value="">단속경찰서를 선택해주세요.</option> <option value="">단속경찰서를 선택해주세요.</option>
</select> </select>
</div> </div>

View File

@ -1,21 +1,7 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="ko" xmlns:th="http://www.thymeleaf.org" <html lang="ko" xmlns:th="http://www.thymeleaf.org"
xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity5"
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout" xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
layout:decorate="~{layout/layout}"> layout:decorate="~{layout/layout}">
<th:block layout:fragment="css">
<style>
.ws-normal{
white-space: normal;
}
.ws-nowrap{
white-space: nowrap;
}
.min-width-300{
min-width: 300px!important;
}
</style>
</th:block>
<th:block layout:fragment="script"> <th:block layout:fragment="script">
<script type="text/javascript" th:src="@{/js/faStatistics/fishingBoatMgt.js}"></script> <script type="text/javascript" th:src="@{/js/faStatistics/fishingBoatMgt.js}"></script>
</th:block> </th:block>
@ -23,115 +9,134 @@
<main> <main>
<div class="row justify-content-between"> <div class="row justify-content-between">
<div class="col-auto"><h4>불법조업 외국어선 정보</h4></div> <div class="col-auto"><h4>불법조업 외국어선 정보</h4></div>
<div class="col-auto"><p>외사통계 > 불법조업외국어선 > 불법조업 외국어선 정보</p></div> <div class="col-auto"><p class="mb-0 mt-2">외사통계 > 불법조업외국어선 > 불법조업 외국어선 정보</p></div>
</div> </div>
<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" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/>
<div class="row mx-0"> <div class="row mx-0">
<div class="col-12 card bg-light text-center"> <div class="col-12 card bg-light text-center">
<div class="card-body"> <div class="card-body">
<form method="get" th:action="@{/faStatistics/fishingBoat}"> <form method="get" th:action="@{/faStatistics/fishingBoat}" id="searchForm">
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}"> <input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
<div class="row pe-3 py-1"> <div class="row justify-content-between py-1">
<div class="col-1"> <div class="col-auto">
<select class="form-select form-select-sm" name="rowCnt" id="rowCnt"> <select class="form-select form-select-sm" name="rowCnt" id="rowCnt">
<th:block th:each="num : ${#numbers.sequence(1,5)}"> <th:block th:each="num : ${#numbers.sequence(1,5)}">
<option th:value="${num*10}" th:text="${num*10}" th:selected="${searchParams.rowCnt eq num*10}"></option> <option th:value="${num*10}" th:text="${num*10}" th:selected="${searchParams.rowCnt eq num*10}"></option>
</th:block> </th:block>
</select> </select>
<select class="form-select form-select-sm"> <select class="form-select form-select-sm" name="year">
<option value="">연도</option> <option value="">연도</option>
<th:block th:each="year : ${#numbers.sequence(2020, 2030)}"> <th:block th:each="year : ${#numbers.sequence(2020, 2030)}">
<option th:value="${year}" th:text="${year}" th:selected="${searchParams.fishingBoat.year eq year}"></option> <option th:value="${year}" th:text="${year}" th:selected="${searchParams.fishingBoat.year eq year}"></option>
</th:block> </th:block>
</select> </select>
</div> </div>
<div class="col-10"> <div class="col-8">
<div class="row">
<div class="col-11">
<div class="row justify-content-end pb-1"> <div class="row justify-content-end pb-1">
<div class="col-auto"> <div class="col-2">
<select class="form-select form-select-sm"> <select class="form-select form-select-sm" name="caseAgency">
<option value="">사건담당경찰서</option> <option value="">사건담당기관</option>
<th:block th:each="commonCode:${session.commonCode.get('OG')}"> <th:block th:each="code:${session.commonCode.get('ATA')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.caseAgency}"></option> <option th:value="${code.itemCd}" th:text="${code.itemValue}" th:selected="${code.itemCd eq searchParams.caseAgency}"></option>
</th:block> </th:block>
</select> </select>
</div> </div>
<div class="col-auto"> <div class="col-2">
<select class="form-select form-select-sm"> <select class="form-select form-select-sm" name="crackdownPolice" id="searchFormPolice">
<option value="">단속경찰서</option> <option value="">단속경찰서</option>
<th:block th:each="commonCode:${session.commonCode.get('OG')}"> <th:block th:each="code:${session.commonCode.get('CPO')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.crackdownPolice}"></option> <option th:value="${code.itemCd}" th:text="${code.itemValue}" th:selected="${code.itemCd eq searchParams.crackdownPolice}"></option>
</th:block> </th:block>
</select> </select>
</div> </div>
<div class="col-auto"> <div class="col-2">
<select class="form-select form-select-sm"> <select class="form-select form-select-sm" name="crackdownBoat" id="searchFormBoat" disabled>
<option value="">단속함정</option> <option value="">단속함정</option>
<th:block th:each="commonCode:${session.commonCode.get('CDB')}"> <th:block th:each="cpoNum:${#numbers.sequence(1, #lists.size(session.commonCode.get('CPO')))}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.crackdownBoat}"></option> <th:block th:each="code:${session.commonCode.get('CPO'+cpoNum)}">
<option th:class="${code.categoryCd}" th:value="${code.itemCd}" th:text="${code.itemValue}" th:selected="${code.itemCd eq searchParams.crackdownBoat}" style="display: none;"></option>
</th:block>
</th:block> </th:block>
</select> </select>
</div> </div>
<div class="col-auto"> <div class="col-2">
<div class="input-group w-auto input-daterange" id="dateSelectorDiv"> <input type="text" class="form-control form-control-sm" placeholder="선명(한글)" name="boatNameKr" th:value="${searchParams.fishingBoat.boatNameKr}">
<input type="text" class="form-control form-control-sm" id="startDate" name="startDate" placeholder="단속기간 시작일" autocomplete="off" readonly th:value="${searchParams.startDate}">
<input type="text" class="form-control form-control-sm" id="endDate" name="endDate" placeholder="단속기간 종료일" autocomplete="off" readonly th:value="${searchParams.endDate}">
</div> </div>
</div> <div class="col-2">
<div class="col-auto">
<input type="text" class="form-control form-control-sm" placeholder="선적지" name="boatNny" th:value="${searchParams.fishingBoat.boatNny}"> <input type="text" class="form-control form-control-sm" placeholder="선적지" name="boatNny" th:value="${searchParams.fishingBoat.boatNny}">
</div> </div>
<div class="col-2">
<input type="text" class="form-control form-control-sm" placeholder="톤수" name="tonCnt" th:value="${searchParams.fishingBoat.tonCnt>0?searchParams.fishingBoat.tonCnt:''}">
</div>
</div> </div>
<div class="row justify-content-end"> <div class="row justify-content-end">
<div class="col-auto"> <div class="col-2">
<select class="form-select form-select-sm"> <select class="form-select form-select-sm" name="boatMaterial">
<option value="">선질</option> <option value="">선질</option>
<th:block th:each="commonCode:${session.commonCode.get('BM')}"> <th:block th:each="code:${session.commonCode.get('BM')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.fishingBoat.boatMaterial}"></option> <option th:value="${code.itemCd}" th:text="${code.itemValue}" th:selected="${code.itemCd eq searchParams.fishingBoat.boatMaterial}"></option>
</th:block> </th:block>
</select> </select>
</div> </div>
<div class="col-auto"> <div class="col-2">
<input type="text" class="form-control form-control-sm" placeholder="톤수" name="tonCnt" th:value="${searchParams.fishingBoat.tonCnt}"> <select class="form-select form-select-sm" name="fisheryType">
</div>
<div class="col-auto">
<select class="form-select form-select-sm">
<option value="">어업종류</option> <option value="">어업종류</option>
<th:block th:each="commonCode:${session.commonCode.get('FT')}"> <th:block th:each="code:${session.commonCode.get('FT')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.fishingBoat.fisheryType}"></option> <option th:value="${code.itemCd}" th:text="${code.itemValue}" th:selected="${code.itemCd eq searchParams.fishingBoat.fisheryType}"></option>
</th:block> </th:block>
</select> </select>
</div> </div>
<div class="col-auto"> <div class="col-2">
<select class="form-select form-select-sm"> <select class="form-select form-select-sm" name="violation">
<option value="">처리현황</option>
<th:block th:each="commonCode:${session.commonCode.get('PR')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.processResult.processStatus}"></option>
</th:block>
</select>
</div>
<div class="col-auto">
<select class="form-select form-select-sm">
<option value="">위반형태</option> <option value="">위반형태</option>
<th:block th:each="commonCode:${session.commonCode.get('VT')}"> <th:block th:each="code:${session.commonCode.get('VT')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.fishingBoat.violation}"></option> <option th:value="${code.itemCd}" th:text="${code.itemValue}" th:selected="${code.itemCd eq searchParams.fishingBoat.violation}"></option>
</th:block> </th:block>
</select> </select>
</div> </div>
<div class="col-2">
<select class="form-select form-select-sm" name="processStatus">
<option value="">처리현황</option>
<th:block th:each="code:${session.commonCode.get('PR')}">
<option th:value="${code.itemCd}" th:text="${code.itemValue}" th:selected="${code.itemCd eq searchParams.processResult.processStatus}"></option>
</th:block>
</select>
</div>
<div class="col-4">
<div class="input-group w-auto input-daterange" id="dateSelectorDiv">
<select class="form-select form-select-sm w-30" name="dateSelector">
<option value="">조건선택</option>
<option value="napoDt" th:selected="${searchParams.dateSelector eq 'napoDt'}">나포일시</option>
<option value="evictionDt" th:selected="${searchParams.dateSelector eq 'evictionDt'}">퇴거일</option>
<option value="directHandoverDt" th:selected="${searchParams.dateSelector eq 'directHandoverDt'}">직접인계일</option>
<option value="consignmentDt" th:selected="${searchParams.dateSelector eq 'consignmentDt'}">위탁일</option>
<option value="confiscationDt" th:selected="${searchParams.dateSelector eq 'confiscationDt'}">몰수확정일</option>
<option value="boatDisposalDt" th:selected="${searchParams.dateSelector eq 'boatDisposalDt'}">폐선일</option>
<option value="returnDt" th:selected="${searchParams.dateSelector eq 'returnDt'}">환부일</option>
<option value="wrtDt" th:selected="${searchParams.dateSelector eq 'wrtDt'}">최종수정일</option>
</select>
<input type="text" class="form-control form-control-sm w-35" id="startDate" name="startDate" placeholder="시작일" autocomplete="off" readonly th:value="${searchParams.startDate}">
<input type="text" class="form-control form-control-sm w-35" id="endDate" name="endDate" placeholder="종료일" autocomplete="off" readonly th:value="${searchParams.endDate}">
</div>
</div>
</div> </div>
</div> </div>
<div class="col-1 d-grid gap-2"> <div class="col-1 d-grid gap-2">
<input type="submit" class="btn btn-lg btn-primary col-auto" id="searchBtn" value="검색"> <input type="submit" class="btn btn-lg btn-primary col-auto" id="searchBtn" value="검색">
</div> </div>
</div> </div>
</div>
</div>
</form> </form>
<div class="row justify-content-start">
<div class="col-12">
<div class="card"> <div class="card">
<div class="card-body"> <div class="card-body">
<div class="row overflow-auto"> <div class="row">
<table class="table table-sm table-hover table-bordered ws-nowrap"> <div class="col-12 overflow-auto">
<thead> <table class="table table-sm table-hover table-bordered text-nowrap">
<thead class="align-middle">
<tr class="table-secondary"> <tr class="table-secondary">
<th></th> <th></th>
<th>나포일시</th> <th>나포일시</th>
@ -151,7 +156,7 @@
<th>수정일</th> <th>수정일</th>
</tr> </tr>
</thead> </thead>
<tbody class="table-group-divider"> <tbody class="table-group-divider align-middle">
<tr class="crackdownStatusTr" th:each="crackdownStatus:${crackdownStatusList}"> <tr class="crackdownStatusTr" th:each="crackdownStatus:${crackdownStatusList}">
<input type="hidden" class="cdsKey" th:value="${crackdownStatus.cdsKey}"> <input type="hidden" class="cdsKey" th:value="${crackdownStatus.cdsKey}">
<td><input type="checkbox" class="trChkBox"></td> <td><input type="checkbox" class="trChkBox"></td>
@ -165,24 +170,24 @@
<td></td> <td></td>
</th:block> </th:block>
<th:block th:unless="${#strings.isEmpty(crackdownStatus.caseAgency)}"> <th:block th:unless="${#strings.isEmpty(crackdownStatus.caseAgency)}">
<th:block th:each="commonCode:${session.commonCode.get('ATA')}"> <th:block th:each="code:${session.commonCode.get('ATA')}">
<td th:if="${crackdownStatus.caseAgency eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></td> <td th:if="${crackdownStatus.caseAgency eq code.itemCd}" th:text="${code.itemValue}"></td>
</th:block> </th:block>
</th:block> </th:block>
<th:block th:if="${#strings.isEmpty(crackdownStatus.crackdownPolice)}"> <th:block th:if="${#strings.isEmpty(crackdownStatus.crackdownPolice)}">
<td></td> <td></td>
</th:block> </th:block>
<th:block th:unless="${#strings.isEmpty(crackdownStatus.crackdownPolice)}"> <th:block th:unless="${#strings.isEmpty(crackdownStatus.crackdownPolice)}">
<th:block th:each="commonCode:${session.commonCode.get('CPO')}"> <th:block th:each="code:${session.commonCode.get('CPO')}">
<td th:if="${crackdownStatus.crackdownPolice eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></td> <td th:if="${crackdownStatus.crackdownPolice eq code.itemCd}" th:text="${code.itemValue}"></td>
</th:block> </th:block>
</th:block> </th:block>
<th:block th:if="${#strings.isEmpty(crackdownStatus.crackdownBoat)}"> <th:block th:if="${#strings.isEmpty(crackdownStatus.crackdownBoat)}">
<td></td> <td></td>
</th:block> </th:block>
<th:block th:unless="${#strings.isEmpty(crackdownStatus.crackdownBoat)}"> <th:block th:unless="${#strings.isEmpty(crackdownStatus.crackdownBoat)}">
<th:block th:each="commonCode:${session.commonCode.get(crackdownStatus.crackdownPolice)}"> <th:block th:each="code:${session.commonCode.get(crackdownStatus.crackdownPolice)}">
<td th:if="${crackdownStatus.crackdownBoat eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></td> <td th:if="${crackdownStatus.crackdownBoat eq code.itemCd}" th:text="${code.itemValue}"></td>
</th:block> </th:block>
</th:block> </th:block>
<td th:text="${crackdownStatus.boatNameKr}"></td> <td th:text="${crackdownStatus.boatNameKr}"></td>
@ -191,8 +196,8 @@
<td></td> <td></td>
</th:block> </th:block>
<th:block th:unless="${#strings.isEmpty(crackdownStatus.fisheryType)}"> <th:block th:unless="${#strings.isEmpty(crackdownStatus.fisheryType)}">
<th:block th:each="commonCode:${session.commonCode.get('FT')}"> <th:block th:each="code:${session.commonCode.get('FT')}">
<td th:if="${crackdownStatus.fisheryType eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></td> <td th:if="${crackdownStatus.fisheryType eq code.itemCd}" th:text="${code.itemValue}"></td>
</th:block> </th:block>
</th:block> </th:block>
<td th:text="|${crackdownStatus.boatNnySung} ${crackdownStatus.boatNnySi}|"></td> <td th:text="|${crackdownStatus.boatNnySung} ${crackdownStatus.boatNnySi}|"></td>
@ -201,25 +206,25 @@
<td></td> <td></td>
</th:block> </th:block>
<th:block th:unless="${#strings.isEmpty(crackdownStatus.boatMaterial)}"> <th:block th:unless="${#strings.isEmpty(crackdownStatus.boatMaterial)}">
<th:block th:each="commonCode:${session.commonCode.get('BM')}"> <th:block th:each="code:${session.commonCode.get('BM')}">
<td th:if="${crackdownStatus.boatMaterial eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></td> <td th:if="${crackdownStatus.boatMaterial eq code.itemCd}" th:text="${code.itemValue}"></td>
</th:block> </th:block>
</th:block> </th:block>
<td class="ws-normal min-width-300" th:text="${crackdownStatus.violationStr}"></td> <td class="text-wrap min-width-300" th:text="${crackdownStatus.violationStr}"></td>
<th:block th:if="${#strings.isEmpty(crackdownStatus.processStatus)}"> <th:block th:if="${#strings.isEmpty(crackdownStatus.processStatus)}">
<td></td> <td></td>
</th:block> </th:block>
<th:block th:unless="${#strings.isEmpty(crackdownStatus.processStatus)}"> <th:block th:unless="${#strings.isEmpty(crackdownStatus.processStatus)}">
<th:block th:each="commonCode:${session.commonCode.get('PR')}"> <th:block th:each="code:${session.commonCode.get('PR')}">
<td th:if="${crackdownStatus.processStatus eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></td> <td th:if="${crackdownStatus.processStatus eq code.itemCd}" th:text="${code.itemValue}"></td>
</th:block> </th:block>
</th:block> </th:block>
<td> <td>
<th:block th:each="commonCode:${session.commonCode.get('OG')}"> <th:block th:each="code:${session.commonCode.get('OG')}">
<th:block th:if="${crackdownStatus.wrtOrgan eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></th:block> <th:block th:if="${crackdownStatus.wrtOrgan eq code.itemCd}" th:text="${code.itemValue}"></th:block>
</th:block> </th:block>
<th:block th:each="commonCode:${session.commonCode.get('JT')}"> <th:block th:each="code:${session.commonCode.get('JT')}">
<th:block th:if="${crackdownStatus.wrtUserGrd eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></th:block> <th:block th:if="${crackdownStatus.wrtUserGrd eq code.itemCd}" th:text="${code.itemValue}"></th:block>
</th:block> </th:block>
<th:block th:text="${crackdownStatus.wrtUserNm}"></th:block> <th:block th:text="${crackdownStatus.wrtUserNm}"></th:block>
</td> </td>
@ -228,6 +233,7 @@
</tbody> </tbody>
</table> </table>
</div> </div>
</div>
<div class="row justify-content-between"> <div class="row justify-content-between">
<div class="col-auto"></div> <div class="col-auto"></div>
<div class="col-auto"> <div class="col-auto">
@ -264,8 +270,6 @@
</div> </div>
</div> </div>
</div> </div>
</div>
</div>
</main> </main>
<div class="modal fade" id="fishingBoatEditModal" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1" aria-labelledby="fishingBoatEditModalLabel" aria-hidden="true"> <div class="modal fade" id="fishingBoatEditModal" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1" aria-labelledby="fishingBoatEditModalLabel" aria-hidden="true">
@ -291,7 +295,7 @@
<input type="hidden" id="modalUrl" value="/modal/crackdownStatusModal"> <input type="hidden" id="modalUrl" value="/modal/crackdownStatusModal">
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button> <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div> </div>
<div class="modal-body" id="subModalBody"> <div class="modal-body text-nowrap" id="subModalBody">
<div class="row"> <div class="row">
<div class="col-12"> <div class="col-12">
<form method="get" action="#" id="modalSearchForm"> <form method="get" action="#" id="modalSearchForm">

View File

@ -1,6 +1,5 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="ko" xmlns:th="http://www.thymeleaf.org" <html lang="ko" xmlns:th="http://www.thymeleaf.org"
xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity5"
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout" xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
layout:decorate="~{layout/layout}"> layout:decorate="~{layout/layout}">
<th:block layout:fragment="script"> <th:block layout:fragment="script">
@ -11,11 +10,14 @@
</th:block> </th:block>
<div layout:fragment="content"> <div layout:fragment="content">
<main> <main>
<h4>불법조업 외국어선 처리현황</h4>
<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" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/>
<div class="row justify-content-between">
<div class="col-auto"><h4>불법조업 외국어선 처리현황</h4></div>
<div class="col-auto"><p class="mb-0 mt-2">외사통계 > 불법조업 외국어선 > 불법조업 외국어선 처리현황</p></div>
</div>
<div class="row mx-0"> <div class="row mx-0">
<div class="col-12 card bg-light"> <div class="col-12 card bg-light text-center">
<div class="card-body"> <div class="card-body">
<form method="get" th:action="@{/faStatistics/processResult}" id="processResultSearchForm"> <form method="get" th:action="@{/faStatistics/processResult}" id="processResultSearchForm">
<div class="row justify-content-between py-1"> <div class="row justify-content-between py-1">
@ -29,12 +31,14 @@
</select> </select>
</div> </div>
</div> </div>
<div class="col-10"> <div class="col-8">
<div class="row justify-content-end"> <div class="row">
<div class="col-auto"> <div class="col-11">
<div class="row justify-content-end pb-1">
<div class="col-2">
<input type="text" class="form-control form-control-sm" placeholder="사건번호" name="sailorNameKr" th:value="${searchParams.caseNum}"> <input type="text" class="form-control form-control-sm" placeholder="사건번호" name="sailorNameKr" th:value="${searchParams.caseNum}">
</div> </div>
<div class="col-auto"> <div class="col-2">
<select class="form-select form-select-sm" name="crackdownPolice" id="crackdownPolice"> <select class="form-select form-select-sm" name="crackdownPolice" id="crackdownPolice">
<option value="">사건담당경찰서</option> <option value="">사건담당경찰서</option>
<th:block th:each="commonCode:${session.commonCode.get('CPO')}"> <th:block th:each="commonCode:${session.commonCode.get('CPO')}">
@ -44,10 +48,10 @@
<option value="etc" th:selected="${searchParams.crackdownPolice ne '' && searchParams.crackdownPolice ne null && !#strings.contains(searchParams.crackdownPolice, 'CPO')}">직접입력</option> <option value="etc" th:selected="${searchParams.crackdownPolice ne '' && searchParams.crackdownPolice ne null && !#strings.contains(searchParams.crackdownPolice, 'CPO')}">직접입력</option>
</select> </select>
</div> </div>
<div class="col-auto"> <div class="col-2">
<input class="form-control form-control-sm" name="boatNameKr" id="boatNameKr" placeholder="피의자(선박명)" th:value="${searchParams.boatNameKr}"> <input class="form-control form-control-sm" name="boatNameKr" id="boatNameKr" placeholder="피의자(선박명)" th:value="${searchParams.boatNameKr}">
</div> </div>
<div class="col-auto"> <div class="col-2">
<select class="form-select form-select-sm violation" name="violation"> <select class="form-select form-select-sm violation" name="violation">
<option value="">위반내용</option> <option value="">위반내용</option>
<th:block th:each="commonCode:${session.commonCode.get('VT')}"> <th:block th:each="commonCode:${session.commonCode.get('VT')}">
@ -56,55 +60,65 @@
</th:block> </th:block>
</select> </select>
</div> </div>
<div class="col-auto"> </div>
<div class="row justify-content-end">
<div class="col-2">
<input class="form-control form-control-sm" name="sentencingCourt" id="sentencingCourt" placeholder="선고법원" th:value="${searchParams.sentencingCourt}"> <input class="form-control form-control-sm" name="sentencingCourt" id="sentencingCourt" placeholder="선고법원" th:value="${searchParams.sentencingCourt}">
</div> </div>
<div class="col-auto"> <div class="col-2">
<input class="form-control form-control-sm" name="sentencingDetail" id="sentencingDetail" placeholder="선고내용" th:value="${searchParams.sentencingDetail}"> <input class="form-control form-control-sm" name="sentencingDetail" id="sentencingDetail" placeholder="선고내용" th:value="${searchParams.sentencingDetail}">
</div> </div>
<div class="col-auto"> <div class="col-2">
<select class="form-select form-select-sm" name="executionDetail" id="executionDetail"> <select class="form-select form-select-sm" name="executionDetail" id="executionDetail">
<option value="">선택</option> <option value="">처리현황</option>
<th:block th:each="commonCode:${session.commonCode.get('PR')}"> <th:block th:each="commonCode:${session.commonCode.get('PR')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" <option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}"
th:selected="${commonCode.itemCd eq searchParams.executionDetail}"></option> th:selected="${commonCode.itemCd eq searchParams.executionDetail}"></option>
</th:block> </th:block>
</select> </select>
</div> </div>
<div class="col-auto"> <div class="col-4">
<input class="form-control form-control-sm" name="returnDt" id="returnDate" placeholder="환부일" th:value="${#temporals.format(searchParams.returnDt, 'yyyy-MM-dd')}"> <div class="input-group w-auto input-daterange" id="dateSelectorDiv">
</div> <select class="form-select form-select-sm w-30" name="dateSelector">
<div class="col-auto"> <option value="">조건선택</option>
<input class="form-control form-control-sm" name="consignmentStartDt" id="consignmentStartDate" placeholder="위탁시작일" th:value="${#temporals.format(searchParams.consignmentStartDt, 'yyyy-MM-dd')}"> <option value="napoDt" th:selected="${searchParams.dateSelector eq 'napoDt'}">나포일시</option>
</div> <option value="evictionDt" th:selected="${searchParams.dateSelector eq 'evictionDt'}">퇴거일</option>
<div class="col-auto"> <option value="directHandoverDt" th:selected="${searchParams.dateSelector eq 'directHandoverDt'}">직접인계일</option>
<input class="form-control form-control-sm" name="consignmentEndDt" id="consignmentEndDate" placeholder="위탁종료일" th:value="${#temporals.format(searchParams.consignmentEndDt, 'yyyy-MM-dd')}"> <option value="consignmentDt" th:selected="${searchParams.dateSelector eq 'consignmentDt'}">위탁일</option>
</div> <option value="confiscationDt" th:selected="${searchParams.dateSelector eq 'confiscationDt'}">몰수확정일</option>
<div class="col-auto"> <option value="boatDisposalDt" th:selected="${searchParams.dateSelector eq 'boatDisposalDt'}">폐선일</option>
<input class="form-control form-control-sm" name="confiscationDt" id="confiscationDate" placeholder="몰수확정일" th:value="${#temporals.format(searchParams.confiscationDt, 'yyyy-MM-dd')}"> <option value="returnDt" th:selected="${searchParams.dateSelector eq 'returnDt'}">환부일</option>
</div> <option value="wrtDt" th:selected="${searchParams.dateSelector eq 'wrtDt'}">최종수정일</option>
<div class="col-auto"> </select>
<input class="form-control form-control-sm" name="boatDisposalDt" id="boatDisposalDate" placeholder="폐선일" th:value="${#temporals.format(searchParams.boatDisposalDt, 'yyyy-MM-dd')}"> <input type="text" class="form-control form-control-sm w-35" id="startDate" name="startDate" placeholder="시작일" autocomplete="off" readonly th:value="${searchParams.startDate}">
<input type="text" class="form-control form-control-sm w-35" id="endDate" name="endDate" placeholder="종료일" autocomplete="off" readonly th:value="${searchParams.endDate}">
</div> </div>
</div> </div>
</div> </div>
<div class="col-auto"> </div>
<input type="submit" class="btn btn-sm btn-primary" id="searchBtn" value="검색"> <div class="col-1 d-grid gap-2">
<input type="submit" class="btn btn-lg btn-primary col-auto" id="searchBtn" value="검색">
</div>
</div>
</div> </div>
</div> </div>
</form> </form>
<div class="row justify-content-start" style="overflow: hidden; overflow-x: scroll"> <div class="card">
<table class="table table-sm table-hover table-bordered ws-nowrap" style="max-width: none; width: auto;" id="prTable"> <div class="card-body">
<thead class="align-middle text-center"> <div class="row">
<tr> <div class="col-12 overflow-auto">
<th>연번</th> <table class="table table-sm table-hover table-bordered text-nowrap" id="prTable">
<thead class="align-middle">
<tr class="table-secondary">
<!--<th>연번</th>-->
<th>사건번호</th> <th>사건번호</th>
<th>사건담당경찰서</th> <th>사건담당경찰서</th>
<th>피의자(선박명)</th> <th>피의자(선박명)</th>
<th>위반장소 및 내용</th> <th>위반장소</th>
<th class="text-wrap min-width-300">위반내용</th>
<th>선고내용</th> <th>선고내용</th>
<th>선고법원</th> <th>선고법원</th>
<th>집행내용</th> <th>처리현황</th>
<th>환부일</th> <th>환부일</th>
<th>위탁시작일</th> <th>위탁시작일</th>
<th>위탁종료일</th> <th>위탁종료일</th>
@ -113,10 +127,10 @@
<th>최종수정일</th> <th>최종수정일</th>
</tr> </tr>
</thead> </thead>
<tbody class="table-group-divider align-middle text-center"> <tbody class="table-group-divider align-middle">
<th:block th:each="processResult:${processResultList}"> <th:block th:each="processResult:${processResultList}">
<tr class="tr" th:data-key="${processResult.prKey}"> <tr class="tr" th:data-key="${processResult.prKey}">
<td th:text="${processResult.prKey}"></td> <!--<td th:text="${processResult.prKey}"></td>-->
<td th:text="${processResult.crackdownStatus.caseNum}"></td> <td th:text="${processResult.crackdownStatus.caseNum}"></td>
<th:block th:each="commonCode:${session.commonCode.get('CPO')}"> <th:block th:each="commonCode:${session.commonCode.get('CPO')}">
<td th:if="${processResult.crackdownStatus.crackdownPolice eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></td> <td th:if="${processResult.crackdownStatus.crackdownPolice eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></td>
@ -130,18 +144,18 @@
<span th:if="${processResult.crackdownStatus.napoSeaPointLon ne null && processResult.crackdownStatus.napoSeaPointLon ne ''}" th:text="${' ~ '}"></span> <span th:if="${processResult.crackdownStatus.napoSeaPointLon ne null && processResult.crackdownStatus.napoSeaPointLon ne ''}" th:text="${' ~ '}"></span>
<span th:text="${processResult.crackdownStatus.napoSeaPointLat}"></span> <span th:text="${processResult.crackdownStatus.napoSeaPointLat}"></span>
<div th:text="${processResult.crackdownStatus.napoSeaPointDetail}"></div> <div th:text="${processResult.crackdownStatus.napoSeaPointDetail}"></div>
</td>
<td class="text-wrap min-width-300">
<th:block th:if="${#lists.size(processResult.violationList) >= 1}"> <th:block th:if="${#lists.size(processResult.violationList) >= 1}">
<div>
<th:block th:each="violation, i:${processResult.violationList}"> <th:block th:each="violation, i:${processResult.violationList}">
<th:block th:each="commonCode:${session.commonCode.get('VT')}"> <th:block th:each="commonCode:${session.commonCode.get('VT')}">
<span th:if="${violation.violation eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></span> <th:block th:if="${violation.violation eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></th:block>
</th:block> </th:block>
<span th:if="${violation.violation ne null && !#strings.contains(violation.violation, 'VT')}" th:text="${violation.violation}"></span> <th:block th:if="${violation.violation ne null && !#strings.contains(violation.violation, 'VT')}" th:text="${violation.violation}"></th:block>
<th:block th:if="${#lists.size(processResult.violationList) >= 1 && i.index < #lists.size(processResult.violationList)-1}"> <th:block th:if="${#lists.size(processResult.violationList) >= 1 && i.index < #lists.size(processResult.violationList)-1}">
<span>, </span> <th:block>, </th:block>
</th:block> </th:block>
</th:block> </th:block>
</div>
</th:block> </th:block>
</td> </td>
<td th:text="${processResult.sentencingCourt}"></td> <td th:text="${processResult.sentencingCourt}"></td>
@ -166,9 +180,16 @@
</tbody> </tbody>
</table> </table>
</div> </div>
<div class="row justify-content"> </div>
<button class="btn btn-sm btn-primary col-auto" id="processResultDownExcel">엑셀 다운로드</button> <div class="row justify-content-between pt-1">
<button class="btn btn-sm btn-primary col-auto" id="processResultAddBtn">등록</button> <div class="col-auto">
<button class="btn btn-success" id="processResultDownExcel">엑셀 다운로드</button>
</div>
<div class="col-auto">
<button class="btn btn-primary" id="processResultAddBtn">등록</button>
</div>
</div>
</div>
</div> </div>
</div> </div>
</div> </div>

View File

@ -1,6 +1,5 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="ko" xmlns:th="http://www.thymeleaf.org" <html lang="ko" xmlns:th="http://www.thymeleaf.org"
xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity5"
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout" xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
layout:decorate="~{layout/layout}"> layout:decorate="~{layout/layout}">
<th:block layout:fragment="script"> <th:block layout:fragment="script">
@ -11,11 +10,14 @@
</th:block> </th:block>
<div layout:fragment="content"> <div layout:fragment="content">
<main> <main>
<h4>선원 세부 현황</h4>
<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" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/>
<div class="row justify-content-between">
<div class="col-auto"><h4>선원 세부 현황</h4></div>
<div class="col-auto"><p class="mb-0 mt-2">외사통계 > 불법조업 외국어선 > 선원 세부 현황</p></div>
</div>
<div class="row mx-0"> <div class="row mx-0">
<div class="col-12 card bg-light"> <div class="col-12 card bg-light text-center">
<div class="card-body"> <div class="card-body">
<form method="get" th:action="@{/faStatistics/sailor}" id="sailorSearchForm"> <form method="get" th:action="@{/faStatistics/sailor}" id="sailorSearchForm">
<div class="row justify-content-between py-1"> <div class="row justify-content-between py-1">
@ -29,9 +31,11 @@
</select> </select>
</div> </div>
</div> </div>
<div class="col-10"> <div class="col-8">
<div class="row justify-content-end"> <div class="row">
<div class="col-auto"> <div class="col-11">
<div class="row justify-content-end pb-1">
<div class="col-2">
<select class="form-select form-select-sm" name="crackdownPolice"> <select class="form-select form-select-sm" name="crackdownPolice">
<option value="">단속경찰서</option> <option value="">단속경찰서</option>
<th:block th:each="commonCode:${session.commonCode.get('CPO')}"> <th:block th:each="commonCode:${session.commonCode.get('CPO')}">
@ -40,7 +44,7 @@
</th:block> </th:block>
</select> </select>
</div> </div>
<div class="col-auto"> <div class="col-2">
<select class="form-select form-select-sm" name="crackdownBoat"> <select class="form-select form-select-sm" name="crackdownBoat">
<option value="">단속함정</option> <option value="">단속함정</option>
<th:block th:each="num : ${#numbers.sequence(1,#lists.size(session.commonCode.get('CPO')))}"> <th:block th:each="num : ${#numbers.sequence(1,#lists.size(session.commonCode.get('CPO')))}">
@ -50,10 +54,10 @@
</th:block> </th:block>
</select> </select>
</div> </div>
<div class="col-auto"> <div class="col-2">
<input type="text" class="form-control form-control-sm" placeholder="선원명(한글)" name="sailorNameKr" th:value="${searchParams.sailorNameKr}"> <input type="text" class="form-control form-control-sm" placeholder="선원명(한글)" name="sailorNameKr" th:value="${searchParams.sailorNameKr}">
</div> </div>
<div class="col-auto"> <div class="col-2">
<select class="form-select form-select-sm" name="residence"> <select class="form-select form-select-sm" name="residence">
<option value="">거주지</option> <option value="">거주지</option>
<th:block th:each="commonCode:${session.commonCode.get('RSC')}"> <th:block th:each="commonCode:${session.commonCode.get('RSC')}">
@ -62,7 +66,7 @@
</th:block> </th:block>
</select> </select>
</div> </div>
<div class="col-auto"> <div class="col-2">
<select class="form-select form-select-sm" name="education"> <select class="form-select form-select-sm" name="education">
<option value="">학력</option> <option value="">학력</option>
<th:block th:each="commonCode:${session.commonCode.get('SED')}"> <th:block th:each="commonCode:${session.commonCode.get('SED')}">
@ -71,7 +75,9 @@
</th:block> </th:block>
</select> </select>
</div> </div>
<div class="col-auto"> </div>
<div class="row justify-content-end">
<div class="col-2">
<select class="form-select form-select-sm" name="position"> <select class="form-select form-select-sm" name="position">
<option value="">선박 내 직책</option> <option value="">선박 내 직책</option>
<th:block th:each="commonCode:${session.commonCode.get('POS')}"> <th:block th:each="commonCode:${session.commonCode.get('POS')}">
@ -80,7 +86,7 @@
</th:block> </th:block>
</select> </select>
</div> </div>
<div class="col-auto"> <div class="col-2">
<select class="form-select form-select-sm" name="career"> <select class="form-select form-select-sm" name="career">
<option value="">승선경력</option> <option value="">승선경력</option>
<th:block th:each="commonCode:${session.commonCode.get('BE')}"> <th:block th:each="commonCode:${session.commonCode.get('BE')}">
@ -89,7 +95,7 @@
</th:block> </th:block>
</select> </select>
</div> </div>
<div class="col-auto"> <div class="col-2">
<select class="form-select form-select-sm" name="similarCriminalHistory"> <select class="form-select form-select-sm" name="similarCriminalHistory">
<option value="">동종 범죄경력</option> <option value="">동종 범죄경력</option>
<option value="1" th:selected="${searchParams.similarCriminalHistory == 1}">1건</option> <option value="1" th:selected="${searchParams.similarCriminalHistory == 1}">1건</option>
@ -99,7 +105,7 @@
<option value="0" th:selected="${searchParams.similarCriminalHistory == 0}">없음</option> <option value="0" th:selected="${searchParams.similarCriminalHistory == 0}">없음</option>
</select> </select>
</div> </div>
<div class="col-auto"> <div class="col-2">
<select class="form-select form-select-sm" name="heterogeneousCriminalHistory"> <select class="form-select form-select-sm" name="heterogeneousCriminalHistory">
<option value="">이종 범죄경력</option> <option value="">이종 범죄경력</option>
<option value="1" th:selected="${searchParams.heterogeneousCriminalHistory == 1}">1건</option> <option value="1" th:selected="${searchParams.heterogeneousCriminalHistory == 1}">1건</option>
@ -109,7 +115,7 @@
<option value="0" th:selected="${searchParams.heterogeneousCriminalHistory == 0}">없음</option> <option value="0" th:selected="${searchParams.heterogeneousCriminalHistory == 0}">없음</option>
</select> </select>
</div> </div>
<div class="col-auto"> <div class="col-2">
<select class="form-select form-select-sm" name="arrestHistory"> <select class="form-select form-select-sm" name="arrestHistory">
<option value="">검거이력</option> <option value="">검거이력</option>
<option value="1" th:selected="${searchParams.arrestHistory == 1}">1건</option> <option value="1" th:selected="${searchParams.arrestHistory == 1}">1건</option>
@ -121,22 +127,27 @@
</div> </div>
</div> </div>
</div> </div>
<div class="col-auto"> <div class="col-1 d-grid gap-2">
<input type="submit" class="btn btn-sm btn-primary" id="searchBtn" value="검색"> <input type="submit" class="btn btn-lg btn-primary col-auto" id="searchBtn" value="검색">
</div>
</div>
</div> </div>
</div> </div>
</form> </form>
<div class="row justify-content-start" style="overflow: hidden; overflow-x: scroll"> <div class="card">
<table class="table table-sm table-hover table-bordered ws-nowrap" style="max-width: none; width: auto;" id="sailorTable"> <div class="card-body">
<thead class="align-middle text-center"> <div class="row justify-content-start">
<tr> <div class="col-12 overflow-auto">
<th rowspan="2">연번</th> <table class="table table-sm table-hover table-bordered text-nowrap" id="sailorTable">
<thead class="align-middle">
<tr class="table-secondary">
<!--<th rowspan="2">연번</th>-->
<th rowspan="2">선박명</th> <th rowspan="2">선박명</th>
<th rowspan="2">나포일시</th> <th rowspan="2">나포일시</th>
<th rowspan="2">단속경찰서</th> <th rowspan="2">단속경찰서</th>
<th rowspan="2">단속함정</th> <th rowspan="2">단속함정</th>
<th rowspan="2">위반장소</th> <th rowspan="2">위반장소</th>
<th rowspan="2">위반내용</th> <th rowspan="2" class="text-wrap min-width-300">위반내용</th>
<th colspan="2">선원명</th> <th colspan="2">선원명</th>
<th rowspan="2">생년월일</th> <th rowspan="2">생년월일</th>
<th colspan="17">거주지(성기준)</th> <th colspan="17">거주지(성기준)</th>
@ -151,7 +162,7 @@
<th rowspan="2">비고</th> <th rowspan="2">비고</th>
<th rowspan="2">최종수정일</th> <th rowspan="2">최종수정일</th>
</tr> </tr>
<tr> <tr class="table-secondary">
<th>한글</th> <th>한글</th>
<th>중문</th> <th>중문</th>
<th>요녕성</th> <th>요녕성</th>
@ -208,10 +219,10 @@
<th>없음</th> <th>없음</th>
</tr> </tr>
</thead> </thead>
<tbody class="table-group-divider align-middle text-center"> <tbody class="table-group-divider align-middle">
<th:block th:each="sailor:${sailorList}"> <th:block th:each="sailor:${sailorList}">
<tr class="tr" th:data-key="${sailor.sailorKey}"> <tr class="tr" th:data-key="${sailor.sailorKey}">
<td th:text="${sailor.sailorKey}"></td> <!--<td th:text="${sailor.sailorKey}"></td>-->
<td th:text="${sailor.fishingBoat.boatNameKr}"></td> <td th:text="${sailor.fishingBoat.boatNameKr}"></td>
<td th:text="${#temporals.format(sailor.crackdownStatus.napoDt, 'yyyy-MM-dd HH:mm')}"></td> <td th:text="${#temporals.format(sailor.crackdownStatus.napoDt, 'yyyy-MM-dd HH:mm')}"></td>
<th:block th:each="commonCode:${session.commonCode.get('CPO')}"> <th:block th:each="commonCode:${session.commonCode.get('CPO')}">
@ -233,11 +244,15 @@
<span th:text="${sailor.crackdownStatus.napoSeaPointLat}"></span> <span th:text="${sailor.crackdownStatus.napoSeaPointLat}"></span>
<div th:text="${sailor.crackdownStatus.napoSeaPointDetail}"></div> <div th:text="${sailor.crackdownStatus.napoSeaPointDetail}"></div>
</td> </td>
<td> <td class="text-wrap min-width-300">
<th:block th:if="${#lists.size(sailor.violationList) >= 1}"> <th:block th:if="${#lists.size(sailor.violationList) >= 1}">
<th:block th:each="violation:${sailor.violationList}"> <th:block th:each="violation, i:${sailor.violationList}">
<th:block th:each="commonCode:${session.commonCode.get('VT')}"> <th:block th:each="commonCode:${session.commonCode.get('VT')}">
<div th:if="${violation.violation eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></div> <th:block th:if="${violation.violation eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></th:block>
</th:block>
<th:block th:if="${violation.violation ne null && !#strings.contains(violation.violation, 'VT')}" th:text="${violation.violation}"></th:block>
<th:block th:if="${#lists.size(sailor.violationList) >= 1 && i.index < #lists.size(sailor.violationList)-1}">
<th:block>, </th:block>
</th:block> </th:block>
</th:block> </th:block>
</th:block> </th:block>
@ -306,9 +321,16 @@
</tbody> </tbody>
</table> </table>
</div> </div>
<div class="row justify-content"> </div>
<button class="btn btn-sm btn-primary col-auto" id="sailorDownExcel">엑셀 다운로드</button> <div class="row justify-content-between pt-1">
<button class="btn btn-sm btn-primary col-auto" id="sailorAddBtn">등록</button> <div class="col-auto">
<button class="btn btn-success" id="sailorDownExcel">엑셀 다운로드</button>
</div>
<div class="col-auto">
<button class="btn btn-primary" id="sailorAddBtn">등록</button>
</div>
</div>
</div>
</div> </div>
</div> </div>
</div> </div>

View File

@ -183,7 +183,7 @@
<input type="hidden" id="modalUrl" value="/modal/userModal"> <input type="hidden" id="modalUrl" value="/modal/userModal">
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button> <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div> </div>
<div class="modal-body" id="subModalBody"> <div class="modal-body text-nowrap" id="subModalBody">
<div class="row"> <div class="row">
<div class="col-12"> <div class="col-12">
<form method="get" action="#" id="modalSearchForm"> <form method="get" action="#" id="modalSearchForm">

View File

@ -252,7 +252,7 @@
<input type="hidden" id="modalUrl" value="/modal/menuModal"> <input type="hidden" id="modalUrl" value="/modal/menuModal">
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button> <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div> </div>
<div class="modal-body" id="subModalBody"> <div class="modal-body text-nowrap" id="subModalBody">
<div class="row"> <div class="row">
<div class="col-12"> <div class="col-12">
<form method="get" action="#" id="modalSearchForm"> <form method="get" action="#" id="modalSearchForm">