외국어선정보 작업중.

강석 최 2022-11-07 18:38:14 +09:00
parent bb79a6cea2
commit 80156cacba
10 changed files with 707 additions and 126 deletions

View File

@ -1,6 +1,12 @@
package com.dbnt.faisp.config; package com.dbnt.faisp.config;
import com.dbnt.faisp.main.codeMgt.service.CodeMgtService; import com.dbnt.faisp.main.codeMgt.service.CodeMgtService;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.CrackdownStatus;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.repository.FishingBoatRepository;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.repository.ProcessResultRepository;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.repository.SailorRepository;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.repository.ViolationRepository;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.service.CrackdownStatusService;
import com.dbnt.faisp.main.menuMgt.model.MenuMgt; import com.dbnt.faisp.main.menuMgt.model.MenuMgt;
import com.dbnt.faisp.main.menuMgt.service.MenuMgtService; import com.dbnt.faisp.main.menuMgt.service.MenuMgtService;
import com.dbnt.faisp.main.userInfo.model.UserInfo; import com.dbnt.faisp.main.userInfo.model.UserInfo;
@ -12,6 +18,8 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.ModelAndView;
import java.util.List;
@RestController @RestController
@RequiredArgsConstructor @RequiredArgsConstructor
@ -21,6 +29,11 @@ public class ModalController {
private final MenuMgtService menuMgtService; private final MenuMgtService menuMgtService;
private final UserInfoService userInfoService; private final UserInfoService userInfoService;
private final CodeMgtService codeMgtService; private final CodeMgtService codeMgtService;
private final CrackdownStatusService crackdownStatusService;
private final ViolationRepository violationRepository;
private final ProcessResultRepository processResultRepository;
private final FishingBoatRepository fishingBoatRepository;
private final SailorRepository sailorRepository;
@GetMapping("/menuModal") @GetMapping("/menuModal")
public ModelAndView menuModalPage(@AuthenticationPrincipal UserInfo loginUser, MenuMgt menuMgt){ public ModelAndView menuModalPage(@AuthenticationPrincipal UserInfo loginUser, MenuMgt menuMgt){
@ -49,4 +62,23 @@ public class ModalController {
mav.addObject("searchParams", userInfo); mav.addObject("searchParams", userInfo);
return mav; return mav;
} }
@GetMapping("/crackdownStatusModal")
public ModelAndView crackdownStatusModal(@AuthenticationPrincipal UserInfo loginUser, CrackdownStatus crackdownStatus){
ModelAndView mav = new ModelAndView("common/modal/crackdownStatusModal");
crackdownStatus.setQueryInfo();
List<CrackdownStatus> crackdownList = crackdownStatusService.selectCrackdownStatusList(crackdownStatus);
for (CrackdownStatus cds: crackdownList) {
cds.setViolationList(violationRepository.findByFbKey(cds.getFbKey()));
cds.setProcessResult(processResultRepository.findByCdsKey(cds.getCdsKey()).orElse(null));
cds.setFishingBoat(fishingBoatRepository.findByCdsKey(cds.getCdsKey()).orElse(null));
cds.setSailorList(sailorRepository.findByFbKey(cds.getFbKey()));
}
mav.addObject("crackdownList", crackdownList);
crackdownStatus.setContentCnt(crackdownStatusService.selectCrackdownStatusListCnt(crackdownStatus));
crackdownStatus.setPaginationInfo();
mav.addObject("searchParams", crackdownStatus);
return mav;
}
} }

View File

@ -100,9 +100,13 @@ public class FishingBoatController {
} }
@PostMapping("/saveFishingBoat") @PostMapping("/saveFishingBoat")
public Integer saveFishingBoat(@AuthenticationPrincipal UserInfo loginUser, public Integer saveFishingBoat(@AuthenticationPrincipal UserInfo loginUser, CrackdownStatus crackdownStatus){
FishingBoat fishingBoat){
return 0; return 0;
// return processResultService.saveProcessResult(processResult); // return processResultService.saveProcessResult(processResult);
} }
@GetMapping("/checkCaseNum")
public Integer checkCaseNum(String caseNum){
return fishingBoatService.checkCaseNum(caseNum);
}
} }

View File

@ -66,8 +66,7 @@ public class CrackdownStatus extends BaseModel {
private String mmsi; private String mmsi;
@Column(name = "field_ivsgt") @Column(name = "field_ivsgt")
@DateTimeFormat(pattern = "yyyy-MM-dd") private String fieldIvsgt;
private LocalDate fieldIvsgt;
@Column(name = "obstr_exspd_cnt") @Column(name = "obstr_exspd_cnt")
private Integer obstrExspdCnt; private Integer obstrExspdCnt;

View File

@ -6,5 +6,6 @@ import org.springframework.data.jpa.repository.JpaRepository;
import java.util.Optional; import java.util.Optional;
public interface CrackdownStatusRepository extends JpaRepository<CrackdownStatus, Integer> { public interface CrackdownStatusRepository extends JpaRepository<CrackdownStatus, Integer> {
Optional<CrackdownStatus> findByCdsKey(Integer cdsKey); Optional<CrackdownStatus> findByCdsKey(Integer cdsKey);
Optional<CrackdownStatus> findTop1ByCaseNum(String caseNum);
} }

View File

@ -99,4 +99,8 @@ public class FishingBoatService extends BaseService {
return cdsKey; return cdsKey;
} }
public Integer checkCaseNum(String caseNum) {
return crackdownStatusRepository.findTop1ByCaseNum(caseNum).orElse(null)==null?0:1;
}
} }

View File

@ -89,4 +89,7 @@
} }
.display-none{ .display-none{
display:none display:none
}
#subModalBody{
white-space: nowrap;
} }

View File

@ -1,16 +1,67 @@
let selectedList = [];
$(document).on('click', '#getFishingBoatEditModalBtn', function (){ $(document).on('click', '#getFishingBoatEditModalBtn', function (){
getFishingBoatEditModal(null, null); getFishingBoatEditModal(null);
})
$(document).on('change', '#caseNum', function (){
$.ajax({
url: '/faStatistics/checkCaseNum',
type: 'GET',
data: {caseNum: $("#caseNum").val()},
dataType:"json",
success: function(data){
if(data===1){
alert("일치하는 사건번호가 등록되어 있습니다.");
$("#caseNum").val("");
}
},
error:function(){
}
});
})
$(document).on('click', '#caseNumBtn', function (){
searchModalSubmit(1);
$("#crackdownSubModal").modal('show');
})
$(document).on('click', '.crackdownTr', function (){
$(".crackdownTr").prop("checked", false);
const chkbox = $(this).find('.crackdownChkbox')[0]
chkbox.checked = !chkbox.checked;
})
$(document).on('click', '#getCrackdownBtn', function (){
getFishingBoatEditModal($(".crackdownChkbox:checked").parents(".crackdownTr").attr("data-key"));
$("#crackdownSubModal").modal('hide');
}) })
$(document).on('change', '#crackdownPolice', function (){ $(document).on('change', '#crackdownPolice', function (){
getCrackdownBoatOption(this.value); getCrackdownBoatOption(this.value);
}) })
$(document).on('change', '#violationSelector', function (){
if(this.selectedOptions[0].value !== ""){
if($(".violationCd[value='"+this.selectedOptions[0].value+"']").length===0){
$("#violationDiv").append(
'<div class="col-6 violation">\n' +
' <div class="input-group w-auto">\n' +
' <input type="hidden" class="form-control form-control-sm fishingBoatInfo violationCd" value="'+this.selectedOptions[0].value+'">\n' +
' <input type="text" class="form-control form-control-sm" value="'+this.selectedOptions[0].innerText+'">\n' +
' <button type="button" class="btn btn-sm btn-outline-secondary opacity-75 violationRemoveBtn">\n' +
' <i class="bi bi-dash-square text-danger"></i>\n' +
' </button>\n' +
' </div>\n' +
'</div>'
)
}
}
})
$(document).on('click', '.violationRemoveBtn', function (){
$(this).parents(".violation").remove();
})
$(document).on('change', '.boatNameKr', function (){ $(document).on('change', '.boatNameKr', function (){
$(".boatNameKr").val(this.value); $(".boatNameKr").val(this.value);
}) })
$(document).on('change', '#equalCaptain', function (){ $(document).on('change', '#equalCaptain', function (){
if(this.checked){ if(this.checked){
$.each($("#captainDiv :input"), function (idx, input){ $.each($("#captainDiv :input"), function (idx, input){
$("#shipOwnerDiv").find("[name='"+input.name+"']").val(input.value) $("#shipOwnerDiv").find("#"+input.id+"2").val(input.value)
}) })
}else{ }else{
$("#shipOwnerDiv :input").val(""); $("#shipOwnerDiv :input").val("");
@ -18,20 +69,25 @@ $(document).on('change', '#equalCaptain', function (){
}) })
$(document).on('change', '#captainDiv :input', function (){ $(document).on('change', '#captainDiv :input', function (){
if($("#equalCaptain").prop("checked")){ if($("#equalCaptain").prop("checked")){
$("#shipOwnerDiv").find("[name='"+this.name+"']").val(this.value) $("#shipOwnerDiv").find("#"+this.id+"2").val(this.value)
} }
}) })
$(document).on('click', '#sailorAddBtn', function (){ $(document).on('click', '#sailorAddBtn', function (){
$("#sailorRestrictionHome").append( $("#sailorRestrictionHome").append(
'<div class="col-4 sailorRestriction">\n' + '<div class="col-4 sailorRestriction">\n' +
' <div class="input-group w-auto">\n' + ' <div class="input-group">\n' +
' <select class="form-select form-select-sm isRestriction" id="normalSailorRestriction">\n' + ' <select class="form-select form-select-sm isRestriction normalSailorPosition" style="width: 75px">\n' +
' <option value="">선택</option>\n' + ' <option value="">직책</option>\n' +
' <option value="O">O</option>\n' + ' <option value="POS005">기타 간부선원</option>\n' +
' <option value="X">X</option>\n' + ' <option value="POS006">일반선원 또는 확인불가</option>\n' +
' </select>\n' + ' </select>\n' +
' <input type="text" class="form-control form-control-sm" id="normalSailor" placeholder="이름">\n' + ' <select class="form-select form-select-sm isRestriction w-auto normalSailorRestriction">\n' +
' <button type="button" class="btn btn-sm btn-outline-secondary opacity-50 sailorRemoveBtn">\n' + ' <option value="">선택</option>\n' +
' <option value="Y">O</option>\n' +
' <option value="N">X</option>\n' +
' </select>\n' +
' <input type="text" class="form-control form-control-sm sailorInfo normalSailorNm w-auto" placeholder="이름">\n' +
' <button type="button" class="btn btn-sm btn-outline-secondary w-auto opacity-75 sailorRemoveBtn">\n' +
' <i class="bi bi-dash-square text-danger"></i>\n' + ' <i class="bi bi-dash-square text-danger"></i>\n' +
' </button>\n' + ' </button>\n' +
' </div>\n' + ' </div>\n' +
@ -41,6 +97,18 @@ $(document).on('click', '#sailorAddBtn', function (){
$(document).on('click', '.sailorRemoveBtn', function (){ $(document).on('click', '.sailorRemoveBtn', function (){
$(this).parents(".sailorRestriction").remove(); $(this).parents(".sailorRestriction").remove();
}) })
$(document).on('click', '#saveTempBtn', function (){
saveFishingBoatInfo("N")
})
$(document).on('click', '#saveResultBtn', function (){
saveFishingBoatInfo("Y")
})
$(document).on('change', '.pressurizedTimeTaken', function (){
$("#pressurizedTimeTaken").val($("#pressurizedTimeTakenDate").val()+"일 "+$("#pressurizedTimeTakenTime").val())
})
$(document).on('change', '.warrantReqTake', function (){
$("#warrantReqTake").val($("#warrantReqTakeDate").val()+"일 "+$("#warrantReqTakeTime").val())
})
function getFishingBoatEditModal(cdsKey){ function getFishingBoatEditModal(cdsKey){
$.ajax({ $.ajax({
@ -55,6 +123,10 @@ function getFishingBoatEditModal(cdsKey){
language: "ko", language: "ko",
autoclose: true autoclose: true
}); });
$(".dateTimeSelector").datetimepicker({
format:'Y-m-d H:i',
lang:'kr'
});
$(".timeSelector").datetimepicker({ $(".timeSelector").datetimepicker({
datepicker:false, datepicker:false,
format:'H:i', format:'H:i',
@ -88,4 +160,83 @@ function getCrackdownBoatOption(categoryCd){
} }
}); });
}
function saveFishingBoatInfo(saveYn){
if(confirm("저장하시겠습니까?")){
$("#saveYn").val(saveYn)
contentFade("in");
const formData = new FormData($("#fishingBoatEditForm")[0]);
$.each($(".violationCd"), function (idx, input){
formData.append('violationList['+idx+'].violation', $(input).val());
});
let sailorCnt=0;
// 선장 정보 입력
const sailorNameKr = $("#sailorNameKr").val();
if(sailorNameKr){
formData.append('sailorList['+sailorCnt+'].sailorNameKr', sailorNameKr);
formData.append('sailorList['+sailorCnt+'].sailorNameCn', $("#sailorNameCn").val());
formData.append('sailorList['+sailorCnt+'].sailorNamePinyin', $("#sailorNamePinyin").val());
formData.append('sailorList['+sailorCnt+'].birthdate', $("#birthdate").val());
formData.append('sailorList['+sailorCnt+'].sailorContact', $("#sailorContact").val());
formData.append('sailorList['+sailorCnt+'].residence', $("#residence").val());
formData.append('sailorList['+sailorCnt+'].arrestHistory', $("#arrestHistory").val());
formData.append('sailorList['+sailorCnt+'].note', $("#note").val());
formData.append('sailorList['+sailorCnt+'].isRestriction', $("#captainRestriction").val());
formData.append('sailorList['+sailorCnt+'].position', "POS001");
//선장 사진 파일 붙임 필요.
sailorCnt++;
}
// 선주 정보 입력
const sailorNameKr2 = $("#sailorNameKr2").val();
if(sailorNameKr) {
formData.append('sailorList[' + sailorCnt + '].sailorNameKr', sailorNameKr2);
formData.append('sailorList[' + sailorCnt + '].sailorNameCn', $("#sailorNameCn2").val());
formData.append('sailorList[' + sailorCnt + '].sailorNamePinyin', $("#sailorNamePinyin2").val());
formData.append('sailorList[' + sailorCnt + '].birthdate', $("#birthdate2").val());
formData.append('sailorList[' + sailorCnt + '].sailorContact', $("#sailorContact2").val());
formData.append('sailorList[' + sailorCnt + '].residence', $("#residence2").val());
formData.append('sailorList[' + sailorCnt + '].note', $("#note2").val());
formData.append('sailorList[' + sailorCnt + '].position', "POS004");
sailorCnt++;
}
const navigatingOfficerRestriction = $("#navigatingOfficerRestriction").val()
if(navigatingOfficerRestriction){
formData.append('sailorList['+sailorCnt+'].isRestriction', navigatingOfficerRestriction);
formData.append('sailorList['+sailorCnt+'].position', "POS002");
sailorCnt++;
}
const chiefEngineerRestriction = $("#chiefEngineerRestriction").val();
if(chiefEngineerRestriction){
formData.append('sailorList['+sailorCnt+'].isRestriction', chiefEngineerRestriction);
formData.append('sailorList['+sailorCnt+'].position', "POS003");
sailorCnt++;
}
$.each($(".sailorRestriction"), function (idx, div){
const position = $(div).find(".normalSailorPosition").val();
if(position===""){
alert("선원의 직책이 선택되지 않았습니다.")
return false
}
formData.append('sailorList['+(idx+sailorCnt)+'].isRestriction', $(div).find(".normalSailorRestriction").val());
formData.append('sailorList['+(idx+sailorCnt)+'].sailorNameKr', $(div).find(".normalSailorNm").val());
formData.append('sailorList['+(idx+sailorCnt)+'].position', position);
});
$.ajax({
type : 'POST',
data : formData,
url : "/faStatistics/saveFishingBoat",
processData: false,
contentType: false,
success : function() {
alert("저장되었습니다.");
contentFade("out");
// location.reload();
},
error : function(xhr, status) {
alert("저장에 실패하였습니다.");
contentFade("out");
}
})
}
} }

View File

@ -0,0 +1,364 @@
<!DOCTYPE html>
<html lang="ko" xmlns:th="http://www.thymeleaf.org">
<div class="row">
<div class="col-12">
<form method="get" action="#" id="modalSearchForm">
<input type="hidden" name="pageIndex" id="modalPageIndex" th:value="${searchParams.pageIndex}">
<input type="hidden" name="rowCnt" value="10">
<div class="row justify-content-end pe-3 py-1">
<div class="col-auto">
<div class="row justify-content-end">
<div class="col-auto">
<input type="text" class="form-control form-control-sm" name="caseNum" placeholder="사건번호" th:value="${searchParams.caseNum}">
</div>
<input type="button" class="btn btn-sm btn-primary col-auto" id="searchModalBtn" value="검색">
</div>
</div>
</div>
</form>
<div class="row justify-content-start">
<div class="col-12">
<div class="card">
<div class="card-body">
<div class="row">
<div class="col-12" style="overflow: hidden; overflow-x: scroll">
<table class="table table-striped table-bordered" style="max-width: none; width: auto;" id="cdsTable">
<thead>
<tr>
<th rowspan="4">연번</th>
<th rowspan="4">사건번호</th>
<th rowspan="4">나포일시</th>
<th rowspan="4">위반장소</th>
<th rowspan="4">위반내용</th>
<th colspan="4">침범유형</th>
<th rowspan="3">NLL</th>
<th colspan="7">특수공무집행방해</th>
<th rowspan="4">사건담당경찰서</th>
<th colspan="2">검거기관</th>
<th rowspan="4">MMSI.NO(AIS)</th>
<th colspan="6">선박제원</th>
<th rowspan="3" colspan="2">선장(출생년도)</th>
<th rowspan="4">선종</th>
<th rowspan="3" colspan="2">어획물 축소기재</th>
<th colspan="5">범칙물</th>
<th colspan="2">처리현황</th>
<th colspan="3">담보금납부(만원)</th>
<th colspan="2">담보금미납(만원)</th>
<th colspan="10">선박처리</th>
<th colspan="4">직접인계</th>
<th colspan="6">구속</th>
<th colspan="6">불구속</th>
<th rowspan="3" colspan="4">현장조사</th>
<th rowspan="3" colspan="2">압송</th>
<th rowspan="4">영장청구 소요시간</th>
<th colspan="5">압수어구</th>
</tr>
<tr>
<th rowspan="2">무허가 조업</th>
<th rowspan="2">
특정금지<br>
(무허가, 정선명령위반)
</th>
<th rowspan="2">
EEZ<br>
제한조건
</th>
<th rowspan="2">영해침범</th>
<th rowspan="2">발생건수</th>
<th colspan="3">인적피해</th>
<th colspan="3">물적피해</th>
<th rowspan="2" colspan="2">구분</th>
<th rowspan="3">선명</th>
<th rowspan="3">톤수(톤)</th>
<th rowspan="3">선원(명)</th>
<th rowspan="3">선질</th>
<th rowspan="2" colspan="2">선적</th>
<th rowspan="3">어종</th>
<th rowspan="2">어획량(kg)</th>
<th rowspan="2">폐기량(kg)</th>
<th rowspan="2">위판량(kg)</th>
<th rowspan="2">위판금액(원)</th>
<th rowspan="2">조사중</th>
<th rowspan="2">완료</th>
<th rowspan="2">척수</th>
<th rowspan="2">납부액</th>
<th rowspan="3">납부일시</th>
<th rowspan="2">미납</th>
<th rowspan="2">미납금액</th>
<th rowspan="2">위탁관리</th>
<th rowspan="3">위탁시작일</th>
<th rowspan="3">위탁종료일</th>
<th rowspan="2">퇴거</th>
<th rowspan="2">직접인계</th>
<th rowspan="2">공매</th>
<th colspan="2">폐선</th>
<th rowspan="2">침몰</th>
<th rowspan="2">환부</th>
<th rowspan="3">일시</th>
<th rowspan="3">해점</th>
<th rowspan="3">인계함정</th>
<th rowspan="3">중측인수함정</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">불구속척수</th>
<th rowspan="2">틀(타망)</th>
<th rowspan="2">폭(유망)</th>
<th rowspan="2">조(형망)</th>
<th rowspan="2">개(통발)</th>
<th rowspan="2">기타</th>
</tr>
<tr>
<th>피해인원</th>
<th>피해액(만원)</th>
<th rowspan="2">상세내용</th>
<th>발생건수</th>
<th>피해액(만원)</th>
<th rowspan="2">상세내용</th>
<th>단순폐선</th>
<th>폐선조건부공매</th>
</tr>
<tr>
<th th:text="${#aggregates.sum(crackdownList.?[invasionType == 'IST001'].![1]) ne null ? #aggregates.sum(crackdownList.?[invasionType == 'IST001'].![1]) : 0}"></th>
<th th:text="${#aggregates.sum(crackdownList.?[invasionType == 'IST002'].![1]) ne null ? #aggregates.sum(crackdownList.?[invasionType == 'IST002'].![1]) : 0}"></th>
<th th:text="${#aggregates.sum(crackdownList.?[invasionType == 'IST003'].![1]) ne null ? #aggregates.sum(crackdownList.?[invasionType == 'IST003'].![1]) : 0}"></th>
<th th:text="${#aggregates.sum(crackdownList.?[invasionType == 'IST004'].![1]) ne null ? #aggregates.sum(crackdownList.?[invasionType == 'IST004'].![1]) : 0}"></th>
<th th:text="${#aggregates.sum(crackdownList.?[nll == 'Y'].![1]) ne null ? #aggregates.sum(crackdownList.?[nll == 'Y'].![1]) : 0}"></th>
<th th:text="${#aggregates.sum(crackdownList.?[personDamageCnt > 0 || personDamageAmount > 0].![1]) ne null ? 1 : 0}"></th>
<th th:text="${#aggregates.sum(crackdownList.![personDamageCnt])}"></th>
<th th:text="${#aggregates.sum(crackdownList.![personDamageAmount])}"></th>
<th th:text="${#aggregates.sum(crackdownList.?[materialDamageCnt > 0 || materialDamageAmount > 0].![1]) ne null ? 1 : 0}"></th>
<th th:text="${#aggregates.sum(crackdownList.![materialDamageAmount])}"></th>
<th>단속경찰서</th>
<th>단속함정</th>
<th></th>
<th></th>
<th>이름</th>
<th>출생년도</th>
<th>어종</th>
<th>수량</th>
<th th:text="${#aggregates.sum(crackdownList.![fishingBoat.offenseCatchCnt])}"></th>
<th th:text="${#aggregates.sum(crackdownList.![fishingBoat.offenseIllegalWasteQuantity])}"></th>
<th th:text="${#aggregates.sum(crackdownList.![fishingBoat.offenseQuantity])}"></th>
<th th:text="${#aggregates.sum(crackdownList.![fishingBoat.offenseAmount])}"></th>
<th th:text="${#aggregates.sum(crackdownList.?[processResult.processStatus == 'PR001'].![1]) ne null ? #aggregates.sum(crackdownList.?[processResult.processStatus == 'PR001'].![1]) : 0}"></th>
<th th:text="${#aggregates.sum(crackdownList.?[processResult.processStatus == 'PR009'].![1]) ne null ? #aggregates.sum(crackdownList.?[processResult.processStatus == 'PR009'].![1]) : 0}"></th>
<th th:text="${#aggregates.sum(crackdownList.?[fishingBoat.damboPayment > 0].![1]) ne null ? 1 : 0}"></th>
<th th:text="${#aggregates.sum(crackdownList.![fishingBoat.damboPayment])}"></th>
<th th:text="${#aggregates.sum(crackdownList.?[fishingBoat.damboUnpaidAmount > 0].![1]) ne null ? 1 : 0}"></th>
<th th:text="${#aggregates.sum(crackdownList.![fishingBoat.damboUnpaidAmount])}"></th>
<th th:text="${#aggregates.sum(crackdownList.?[processResult.consignmentStartDt != null].![1]) ne null ? 1 : 0}"></th>
<th th:text="${#aggregates.sum(crackdownList.?[processResult.evictionDt != null].![1]) ne null ? 1 : 0}"></th>
<th th:text="${#aggregates.sum(crackdownList.?[processResult.directHandoverDt != null].![1]) ne null ? 1 : 0}"></th>
<th th:text="${#aggregates.sum(crackdownList.?[processResult.boatDisposalDt != null && processResult.boatDisposalType == 'BDT001'].![1]) ne null ? #aggregates.sum(crackdownList.?[processResult.boatDisposalDt != null && processResult.boatDisposalType == 'BDT001'].![1]) : 0}"></th>
<th th:text="${#aggregates.sum(crackdownList.?[processResult.boatDisposalDt != null && processResult.boatDisposalType == 'BDT002'].![1]) ne null ? #aggregates.sum(crackdownList.?[processResult.boatDisposalDt != null && processResult.boatDisposalType == 'BDT002'].![1]) : 0}"></th>
<th th:text="${#aggregates.sum(crackdownList.?[processResult.boatDisposalDt != null && processResult.boatDisposalType == 'BDT003'].![1]) ne null ? #aggregates.sum(crackdownList.?[processResult.boatDisposalDt != null && processResult.boatDisposalType == 'BDT003'].![1]) : 0}"></th>
<th th:text="${#aggregates.sum(crackdownList.?[processResult.confiscationDt != null].![1]) ne null ? 1 : 0}"></th>
<th th:text="${#aggregates.sum(crackdownList.?[processResult.returnDt != null].![1]) ne null ? 1 : 0}"></th>
<th th:text="${#aggregates.sum(crackdownList.![restrictionTotal])}"></th>
<th th:text="${#aggregates.sum(crackdownList.![restrictionCaptin])}"></th>
<th th:text="${#aggregates.sum(crackdownList.![restrictionMate])}"></th>
<th th:text="${#aggregates.sum(crackdownList.![restrictionWarden])}"></th>
<th th:text="${#aggregates.sum(crackdownList.![restrictionSailor])}"></th>
<th th:text="${#aggregates.sum(crackdownList.?[processResult.confiscationDt != null].![1]) ne null ? #aggregates.sum(crackdownList.?[processResult.confiscationDt != null].![1]) : 0}"></th>
<th th:text="${#aggregates.sum(crackdownList.![notRestrictionTotal])}"></th>
<th th:text="${#aggregates.sum(crackdownList.![notRestrictionCaptin])}"></th>
<th th:text="${#aggregates.sum(crackdownList.![notRestrictionMate])}"></th>
<th th:text="${#aggregates.sum(crackdownList.![notRestrictionWarden])}"></th>
<th th:text="${#aggregates.sum(crackdownList.![notRestrictionSailor])}"></th>
<th th:text="${#aggregates.sum(crackdownList.?[processResult.confiscationDt != null].![1]) ne null ? 0 : #aggregates.sum(crackdownList.?[processResult.confiscationDt != null].![1])}"></th>
<th th:text="${#aggregates.sum(crackdownList.?[fieldIvsgtNapoDt != null].![1]) ne null ? 1 : 0}"></th>
<th>나포일시</th>
<th>석방일시</th>
<th>소요시간</th>
<th>소요시간</th>
<th>거리(해리)</th>
<th th:text="${#aggregates.sum(crackdownList.?[fishingBoat.confiscationFrame != null && fishingBoat.confiscationFrame != ''].![1]) ne null ? #aggregates.sum(crackdownList.?[fishingBoat.confiscationFrame != null && fishingBoat.confiscationFrame != ''].![1]) : 0}"></th>
<th th:text="${#aggregates.sum(crackdownList.?[fishingBoat.confiscationFrame != null && fishingBoat.confiscationWidth != ''].![1]) ne null ? #aggregates.sum(crackdownList.?[fishingBoat.confiscationWidth != null && fishingBoat.confiscationWidth != ''].![1]) : 0}"></th>
<th th:text="${#aggregates.sum(crackdownList.?[fishingBoat.confiscationFrame != null && fishingBoat.confiscationJo != ''].![1]) ne null ? #aggregates.sum(crackdownList.?[fishingBoat.confiscationJo != null && fishingBoat.confiscationJo != ''].![1]) : 0}"></th>
<th th:text="${#aggregates.sum(crackdownList.?[fishingBoat.confiscationFrame != null && fishingBoat.confiscationGae != ''].![1]) ne null ? #aggregates.sum(crackdownList.?[fishingBoat.confiscationGae != null && fishingBoat.confiscationGae != ''].![1]) : 0}"></th>
<th th:text="${#aggregates.sum(crackdownList.?[fishingBoat.confiscationFrame != null && fishingBoat.confiscationEtc != ''].![1]) ne null ? #aggregates.sum(crackdownList.?[fishingBoat.confiscationEtc != null && fishingBoat.confiscationEtc != ''].![1]) : 0}"></th>
</tr>
</thead>
<tbody class="table-group-divider">
<th:block th:each="crackdownStatus:${crackdownList}">
<tr class="crackdownTr" th:data-key="${crackdownStatus.cdsKey}">
<td><input type="checkbox" class="crackdownChkbox"></td>
<td th:text="${crackdownStatus.cdsKey}"></td>
<td th:text="${crackdownStatus.caseNum}"></td>
<td th:text="${crackdownStatus.napoDt}"></td>
<td>
<th:block th:if="${#lists.size(crackdownStatus.violationList) >= 1}">
<th:block th:each="violation:${crackdownStatus.violationList}">
<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:block>
</th:block>
</td>
<td>
<span th:text="${crackdownStatus.napoSeaPointLat}"> ~ </span>
<span th:text="${crackdownStatus.napoSeaPointLon}"></span>
<div th:text="${crackdownStatus.napoSeaPointDetail}"></div>
</td>
<th:block th:each="commonCode:${session.commonCode.get('IST')}">
<td th:if="${crackdownStatus.invasionType ne null && crackdownStatus.invasionType eq 'IST001' && crackdownStatus.invasionType eq commonCode.itemCd}" th:text="1"></td>
<td th:if="${crackdownStatus.invasionType ne commonCode.itemCd}" th:text="0"></td>
</th:block>
<td th:text="${crackdownStatus.nll eq 'Y' ? 1 : 0}"></td>
<td th:text="${crackdownStatus.personDamageCnt ne 0 && crackdownStatus.personDamageAmount ne 0 ? 1 : 0}"></td>
<td th:text="${crackdownStatus.personDamageCnt}"></td>
<td th:text="${crackdownStatus.personDamageAmount}"></td>
<td th:text="${crackdownStatus.personDamageDetail}"></td>
<td th:text="${crackdownStatus.materialDamageCnt ne 0 && crackdownStatus.materialDamageAmount ne 0 ? 1 : 0}"></td>
<td th:text="${crackdownStatus.materialDamageAmount}"></td>
<td th:text="${crackdownStatus.materialDamageDetail}"></td>
<th:block th:each="commonCode:${session.commonCode.get('ATA')}">
<td th:if="${crackdownStatus.caseAgency eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></td>
</th:block>
<th:block th:if="${crackdownStatus.caseAgency eq null || crackdownStatus.caseAgency eq ''}">
<td></td>
</th:block>
<th:block th:each="commonCode:${session.commonCode.get('CPO')}">
<td th:if="${crackdownStatus.crackdownPolice eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></td>
</th:block>
<th:block th:if="${!#strings.contains(crackdownStatus.crackdownPolice, 'CPO')}">
<td th:text="${crackdownStatus.crackdownPolice}"></td>
</th:block>
<th:block th:each="num : ${#numbers.sequence(1,#lists.size(session.commonCode.get('CPO')))}">
<th:block th:if="${'CPO'+num == crackdownStatus.crackdownPolice}" th:each="commonCode:${session.commonCode.get('CPO'+num)}">
<td th:if="${crackdownStatus.crackdownBoat eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></td>
</th:block>
</th:block>
<th:block th:if="${!#strings.contains(crackdownStatus.crackdownBoat, 'CPO')}">
<td></td>
</th:block>
<td th:text="${crackdownStatus.mmsi}"></td>
<td th:text="${crackdownStatus.fishingBoat.boatNameKr}"></td>
<td th:text="${crackdownStatus.fishingBoat.tonCnt}"></td>
<td th:text="${crackdownStatus.restrictionSailor + crackdownStatus.notRestrictionSailor}"></td>
<th:block th:each="commonCode:${session.commonCode.get('BM')}">
<td th:if="${crackdownStatus.fishingBoat.boatMaterial eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></td>
</th:block>
<th:block th:if="${!#strings.contains(crackdownStatus.fishingBoat.boatMaterial, 'BM')}">
<td th:text="${crackdownStatus.fishingBoat.boatMaterial}"></td>
</th:block>
<td th:text="${crackdownStatus.fishingBoat.boatNnySung}"></td>
<td th:text="${crackdownStatus.fishingBoat.boatNnySi}"></td>
<th:block th:each="sailor:${crackdownStatus.sailorList}">
<td th:if="${sailor.position eq 'POS001'}" th:text="${sailor.sailorNameKr}"></td>
<td th:if="${sailor.position eq 'POS001'}" th:text="${sailor.birthdate}"></td>
</th:block>
<th:block th:if="${#lists.size(crackdownStatus.sailorList) == 0}">
<td></td>
<td></td>
</th:block>
<th:block th:each="commonCode:${session.commonCode.get('FT')}">
<td th:if="${crackdownStatus.fishingBoat.fisheryType eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></td>
</th:block>
<th:block th:if="${!#strings.contains(crackdownStatus.fishingBoat.fisheryType, 'FT')}">
<td th:text="${crackdownStatus.fishingBoat.fisheryType}"></td>
</th:block>
<td th:text="${crackdownStatus.fishingBoat.catchFishSpecies}"></td>
<td th:text="${crackdownStatus.fishingBoat.catchCnt}"></td>
<td th:text="${crackdownStatus.fishingBoat.offenseFishSpecies}"></td>
<td th:text="${crackdownStatus.fishingBoat.offenseCatchCnt}"></td>
<td th:text="${crackdownStatus.fishingBoat.offenseIllegalWasteQuantity}"></td>
<td th:text="${crackdownStatus.fishingBoat.offenseQuantity}"></td>
<td th:text="${crackdownStatus.fishingBoat.offenseAmount}"></td>
<td th:text="${crackdownStatus.processResult.processStatus eq 'PR001' ? 1 : 0}"></td>
<td th:text="${crackdownStatus.processResult.processStatus eq 'PR009' ? 1 : 0}"></td>
<td th:text="${crackdownStatus.fishingBoat.damboPayment ne 0 ? 1 : 0}"></td>
<td th:text="${crackdownStatus.fishingBoat.damboPayment}"></td>
<td th:text="${crackdownStatus.fishingBoat.paymentPaymentDt}"></td>
<td th:text="${crackdownStatus.fishingBoat.damboUnpaidAmount ne 0 ? 1 : 0}"></td>
<td th:text="${crackdownStatus.fishingBoat.damboUnpaidAmount}"></td>
<td th:text="${crackdownStatus.processResult.consignmentStartDt ne null ? 1 : 0}"></td>
<td th:text="${crackdownStatus.processResult.consignmentStartDt}"></td>
<td th:text="${crackdownStatus.processResult.consignmentEndDt}"></td>
<td th:text="${crackdownStatus.processResult.evictionDt ne null ? 1 : 0}"></td>
<td th:text="${crackdownStatus.processResult.directHandoverDt ne null ? 1 : 0}"></td>
<td th:text="${crackdownStatus.processResult.boatDisposalDt ne null && crackdownStatus.processResult.boatDisposalType eq 'BDT001'? 1 : 0}"></td>
<td th:text="${crackdownStatus.processResult.boatDisposalDt ne null && crackdownStatus.processResult.boatDisposalType eq 'BDT002'? 1 : 0}"></td>
<td th:text="${crackdownStatus.processResult.boatDisposalDt ne null && crackdownStatus.processResult.boatDisposalType eq 'BDT003'? 1 : 0}"></td>
<td th:text="${crackdownStatus.processResult.confiscationDt ne null ? 1 : 0}"></td>
<td th:text="${crackdownStatus.processResult.returnDt ne null ? 1 : 0}"></td>
<td th:text="${crackdownStatus.processResult.directHandoverDt}"></td>
<td>
<span th:text="${crackdownStatus.processResult.handoverSeaPointLat}"> ~ </span>
<span th:text="${crackdownStatus.processResult.handoverSeaPointLon}"></span>
</td>
<td th:text="${crackdownStatus.processResult.handoverBoat}"></td>
<td th:text="${crackdownStatus.processResult.middleTakeoverBoat}"></td>
<td th:text="${crackdownStatus.restrictionTotal}"></td>
<td th:text="${crackdownStatus.restrictionCaptin}"></td>
<td th:text="${crackdownStatus.restrictionMate}"></td>
<td th:text="${crackdownStatus.restrictionWarden}"></td>
<td th:text="${crackdownStatus.restrictionSailor}"></td>
<td th:text="${crackdownStatus.processResult.confiscationDt ne null ? 1 : 0}"></td>
<td th:text="${crackdownStatus.notRestrictionTotal}"></td>
<td th:text="${crackdownStatus.notRestrictionCaptin}"></td>
<td th:text="${crackdownStatus.notRestrictionMate}"></td>
<td th:text="${crackdownStatus.notRestrictionWarden}"></td>
<td th:text="${crackdownStatus.notRestrictionSailor}"></td>
<td th:text="${crackdownStatus.processResult.confiscationDt ne null ? 0 : 1}"></td>
<td th:text="${crackdownStatus.fieldIvsgtNapoDt ne null? 1 : 0}"></td>
<td th:text="${crackdownStatus.fieldIvsgtNapoDt }"></td>
<td th:text="${crackdownStatus.fieldIvsgtReleaseDt}"></td>
<td th:text="${crackdownStatus.fieldIvsgtTimeTaken}"></td>
<td th:text="${crackdownStatus.processResult.pressurizedTimeTaken}"></td>
<td th:text="${crackdownStatus.distance}"></td>
<td th:text="${crackdownStatus.processResult.warrantReqTakeTime}"></td>
<td th:text="${crackdownStatus.fishingBoat.confiscationFrame}"></td>
<td th:text="${crackdownStatus.fishingBoat.confiscationWidth}"></td>
<td th:text="${crackdownStatus.fishingBoat.confiscationJo}"></td>
<td th:text="${crackdownStatus.fishingBoat.confiscationGae}"></td>
<td th:text="${crackdownStatus.fishingBoat.confiscationEtc}"></td>
</tr>
</th:block>
</tbody>
</table>
</div>
</div>
<div class="row justify-content-center">
<div class="col-auto">
<nav aria-label="Page navigation">
<ul class="pagination">
<th:block th:if="${searchParams.pageIndex>3}">
<li class="page-item modalPage" th:data-pageindex="${(searchParams.pageIndex)-3}">
<a class="page-link" href="#" aria-label="Previous">
<span aria-hidden="true">&laquo;</span>
</a>
</li>
</th:block>
<th:block th:each="num : ${#numbers.sequence(searchParams.startNum, searchParams.endNum)}">
<li class="page-item modalPage" th:data-pageindex="${num}" th:classappend="${searchParams.pageIndex==num?'active':''}">
<a class="page-link" href="#" th:text="${num}"></a>
</li>
</th:block>
<th:block th:if="${searchParams.maxNum>searchParams.endNum+2}">
<li class="page-item modalPage" th:data-pageindex="${(searchParams.pageIndex)+3}">
<a class="page-link" href="#" aria-label="Next">
<span aria-hidden="true">&raquo;</span>
</a>
</li>
</th:block>
</ul>
</nav>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</html>

View File

@ -9,12 +9,13 @@
<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}"/>
<input type="hidden" name="cdsKey" th:value="${crackdownStatus.cdsKey}"> <input type="hidden" name="cdsKey" th:value="${crackdownStatus.cdsKey}">
<input type="hidden" name="fbKey" th:value="${crackdownStatus.fishingBoat.fbKey}">
<input type="hidden" name="saveYn" id="saveYn" th:value="${crackdownStatus.fishingBoat.saveYn}"> <input type="hidden" name="saveYn" id="saveYn" th:value="${crackdownStatus.fishingBoat.saveYn}">
<input type="hidden" name="wrtOrgan" th:value="${crackdownStatus.wrtOrgan}"> <input type="hidden" name="wrtOrgan" th:value="${crackdownStatus.fishingBoat.wrtOrgan}">
<input type="hidden" name="wrtPart" th:value="${crackdownStatus.wrtPart}"> <input type="hidden" name="wrtPart" th:value="${crackdownStatus.fishingBoat.wrtPart}">
<input type="hidden" name="wrtUserSeq" th:value="${crackdownStatus.wrtUserSeq}"> <input type="hidden" name="wrtUserSeq" th:value="${crackdownStatus.fishingBoat.wrtUserSeq}">
<input type="hidden" name="wrtUserNm" th:value="${crackdownStatus.wrtUserNm}"> <input type="hidden" name="wrtUserNm" th:value="${crackdownStatus.fishingBoat.wrtUserNm}">
<input type="hidden" name="wrtUserGrd" th:value="${crackdownStatus.wrtUserGrd}"> <input type="hidden" name="wrtUserGrd" th:value="${crackdownStatus.fishingBoat.wrtUserGrd}">
<ul class="nav nav-tabs" id="userTab" role="tablist"> <ul class="nav nav-tabs" id="userTab" role="tablist">
<li class="nav-item" role="presentation"> <li class="nav-item" role="presentation">
<button class="nav-link active" id="baseInfoTab" data-bs-toggle="tab" data-bs-target="#baseInfoTabPanel" type="button" role="tab" aria-controls="baseInfoTabPanel" aria-selected="true">기본정보</button> <button class="nav-link active" id="baseInfoTab" data-bs-toggle="tab" data-bs-target="#baseInfoTabPanel" type="button" role="tab" aria-controls="baseInfoTabPanel" aria-selected="true">기본정보</button>
@ -34,39 +35,42 @@
<div class="mb-3 row"> <div class="mb-3 row">
<label for="boatNameKr" class="col-sm-1 col-form-label col-form-label-sm text-center">선명</label> <label for="boatNameKr" class="col-sm-1 col-form-label col-form-label-sm text-center">선명</label>
<div class="col-sm-2"> <div class="col-sm-2">
<input type="text" class="form-control form-control-sm boatNameKr" id="boatNameKr" name="boatNameKr" placeholder="한글" th:value="${crackdownStatus.fishingBoat.boatNameKr}"> <input type="text" class="form-control form-control-sm fishingBoatInfo boatNameKr" id="boatNameKr" name="fishingBoat.boatNameKr" placeholder="한글" th:value="${crackdownStatus.fishingBoat.boatNameKr}">
</div> </div>
<label for="caseNum" class="col-sm-1 col-form-label col-form-label-sm text-center">사건번호</label> <label for="caseNum" class="col-sm-1 col-form-label col-form-label-sm text-center">사건번호</label>
<div class="col-sm-2"> <div class="col-sm-2">
<input type="text" class="form-control form-control-sm" id="caseNum" name="caseNum" th:value="${crackdownStatus.caseNum}"> <div class="input-group">
<input type="text" class="form-control form-control-sm crackdownStatusInfo" id="caseNum" name="caseNum" th:value="${crackdownStatus.caseNum}">
<input type="button" class="btn btn-sm btn-outline-primary w-auto" id="caseNumBtn" value="불러오기">
</div>
</div> </div>
</div> </div>
<div class="mb-3 row"> <div class="mb-3 row">
<label for="caseAgency" class="col-sm-1 col-form-label col-form-label-sm text-center">사건담당기관</label> <label for="caseAgency" 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" id="caseAgency" name="caseAgency"> <select class="form-select form-select-sm crackdownStatusInfo" id="caseAgency" name="caseAgency">
<option value="">선택</option> <option value="">선택</option>
<th:block th:each="code:${ataList}"> <th:block th:each="code:${ataList}">
<option th:value="${code.itemCd}" th:text="${code.itemValue}" th:selected="${crackdownStatus.caseAgency}"></option> <option th:value="${code.itemCd}" th:text="${code.itemValue}" th:selected="${code.itemCd eq crackdownStatus.caseAgency}"></option>
</th:block> </th:block>
</select> </select>
</div> </div>
<label for="casePoliceOfficer" class="col-sm-1 col-form-label col-form-label-sm text-center fs-13">사건담당경찰관</label> <label for="casePoliceOfficer" class="col-sm-1 col-form-label col-form-label-sm text-center fs-13">사건담당경찰관</label>
<div class="col-sm-2"> <div class="col-sm-2">
<input type="text" class="form-control form-control-sm" id="casePoliceOfficer" name="casePoliceOfficer" th:value="${crackdownStatus.casePoliceOfficer}"> <input type="text" class="form-control form-control-sm crackdownStatusInfo" id="casePoliceOfficer" name="casePoliceOfficer" th:value="${crackdownStatus.casePoliceOfficer}">
</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" name="crackdownPolice" id="crackdownPolice"> <select class="form-select form-select-sm crackdownStatusInfo" 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="${crackdownStatus.crackdownPolice}"></option> <option th:value="${code.itemCd}" th:text="${code.itemValue}" th:selected="${code.itemCd eq crackdownStatus.crackdownPolice}"></option>
</th:block> </th:block>
</select> </select>
</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" name="crackdownBoat" id="crackdownBoat" th:data-boatcode="${crackdownStatus.crackdownBoat}" disabled> <select class="form-select form-select-sm crackdownStatusInfo" name="crackdownBoat" id="crackdownBoat" th:data-boatcode="${crackdownStatus.crackdownBoat}" disabled>
<option value="">단속경찰서를 선택해주세요.</option> <option value="">단속경찰서를 선택해주세요.</option>
</select> </select>
</div> </div>
@ -74,22 +78,22 @@
<div class="mb-3 row"> <div class="mb-3 row">
<label for="napoDt" class="col-sm-1 col-form-label col-form-label-sm text-center">나포일시</label> <label for="napoDt" class="col-sm-1 col-form-label col-form-label-sm text-center">나포일시</label>
<div class="col-sm-2"> <div class="col-sm-2">
<input type="text" class="form-control form-control-sm dateSelector" id="napoDt" name="napoDt" placeholder="0000-00-00" th:value="${crackdownStatus.napoDt}"> <input type="text" class="form-control form-control-sm crackdownStatusInfo dateTimeSelector" id="napoDt" name="napoDt" placeholder="0000-00-00 00:00" th:value="${#temporals.format(crackdownStatus.napoDt, 'yyyy-MM-dd')}">
</div> </div>
<label for="napoSeaPointLon" class="col-sm-1 col-form-label col-form-label-sm text-center">나포장소</label> <label for="napoSeaPointLon" class="col-sm-1 col-form-label col-form-label-sm text-center">나포장소</label>
<div class="col-sm-5"> <div class="col-sm-5">
<div class="input-group w-auto"> <div class="input-group w-auto">
<input type="text" class="form-control form-control-sm w-25" id="napoSeaPointLon" name="napoSeaPointLon" placeholder="00 . 00 . 00N" th:value="${crackdownStatus.napoSeaPointLon}"> <input type="text" class="form-control form-control-sm w-25 crackdownStatusInfo" id="napoSeaPointLon" name="napoSeaPointLon" placeholder="00 . 00 . 00N" th:value="${crackdownStatus.napoSeaPointLon}">
<input type="text" class="form-control form-control-sm w-25" id="napoSeaPointLat" name="napoSeaPointLat" placeholder="000-00.00E" th:value="${crackdownStatus.napoSeaPointLat}"> <input type="text" class="form-control form-control-sm w-25 crackdownStatusInfo" id="napoSeaPointLat" name="napoSeaPointLat" placeholder="000-00.00E" th:value="${crackdownStatus.napoSeaPointLat}">
<input type="text" class="form-control form-control-sm w-50" id="napoSeaPointDetail" name="napoSeaPointDetail" placeholder="00도 00방 00해리, 어업협정선 내측 00해리" th:value="${crackdownStatus.napoSeaPointDetail}"> <input type="text" class="form-control form-control-sm w-50 crackdownStatusInfo" id="napoSeaPointDetail" name="napoSeaPointDetail" placeholder="00도 00방 00해리, 어업협정선 내측 00해리" th:value="${crackdownStatus.napoSeaPointDetail}">
</div> </div>
</div> </div>
<label for="fieldIvsgt" class="col-sm-1 col-form-label col-form-label-sm text-center">압송/현장조사</label> <label for="fieldIvsgt" 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" name="fieldIvsgt" id="fieldIvsgt"> <select class="form-select form-select-sm crackdownStatusInfo" name="fieldIvsgt" id="fieldIvsgt">
<option value="">선택</option> <option value="">선택</option>
<option value="C">압송</option> <option value="C" th:selected="${crackdownStatus.fieldIvsgt eq 'C'}">압송</option>
<option value="F">현장조사</option> <option value="F" th:selected="${crackdownStatus.fieldIvsgt eq 'F'}">현장조사</option>
</select> </select>
</div> </div>
</div> </div>
@ -104,36 +108,36 @@
<label for="sailorNameKr" class="col-sm-2 col-form-label col-form-label-sm text-center">선장명</label> <label for="sailorNameKr" class="col-sm-2 col-form-label col-form-label-sm text-center">선장명</label>
<div class="col-sm-10"> <div class="col-sm-10">
<div class="input-group w-auto"> <div class="input-group w-auto">
<input type="text" class="form-control form-control-sm" id="sailorNameKr" name="sailorNameKr" placeholder="한글"> <input type="text" class="form-control form-control-sm sailorInfo" id="sailorNameKr" placeholder="한글">
<input type="text" class="form-control form-control-sm" id="sailorNameCn" name="sailorNameCn" placeholder="중문"> <input type="text" class="form-control form-control-sm sailorInfo" id="sailorNameCn" placeholder="중문">
<input type="text" class="form-control form-control-sm" id="sailorNamePinyin" name="sailorNamePinyin" placeholder="병음"> <input type="text" class="form-control form-control-sm sailorInfo" id="sailorNamePinyin" placeholder="병음">
</div> </div>
</div> </div>
</div> </div>
<div class="mb-3 row"> <div class="mb-3 row">
<label for="birthdate" class="col-sm-2 col-form-label col-form-label-sm text-center">생년월일</label> <label for="birthdate" class="col-sm-2 col-form-label col-form-label-sm text-center">생년월일</label>
<div class="col-sm-4"> <div class="col-sm-4">
<input type="text" class="form-control form-control-sm dateSelector" id="birthdate" name="birthdate" placeholder="0000-00-00"> <input type="text" class="form-control form-control-sm sailorInfo dateSelector" id="birthdate" placeholder="0000-00-00">
</div> </div>
<label for="sailorContact" class="col-sm-2 col-form-label col-form-label-sm text-center">연락처</label> <label for="sailorContact" class="col-sm-2 col-form-label col-form-label-sm text-center">연락처</label>
<div class="col-sm-4"> <div class="col-sm-4">
<input type="text" class="form-control form-control-sm" id="sailorContact" name="sailorContact"> <input type="text" class="form-control form-control-sm sailorInfo" id="sailorContact">
</div> </div>
</div> </div>
<div class="mb-3 row"> <div class="mb-3 row">
<label for="residence" class="col-sm-2 col-form-label col-form-label-sm text-center">주소</label> <label for="residence" class="col-sm-2 col-form-label col-form-label-sm text-center">주소</label>
<div class="col-sm-4"> <div class="col-sm-4">
<input type="text" class="form-control form-control-sm" id="residence" name="residence" placeholder="성 기준"> <input type="text" class="form-control form-control-sm sailorInfo" id="residence" placeholder="성 기준">
</div> </div>
<label for="arrestHistory" class="col-sm-2 col-form-label col-form-label-sm text-center">재범횟수</label> <label for="arrestHistory" class="col-sm-2 col-form-label col-form-label-sm text-center">재범횟수</label>
<div class="col-sm-4"> <div class="col-sm-4">
<input type="text" class="form-control form-control-sm" id="arrestHistory" name="arrestHistory"> <input type="text" class="form-control form-control-sm sailorInfo" id="arrestHistory">
</div> </div>
</div> </div>
<div class="mb-3 row"> <div class="mb-3 row">
<label for="note" class="col-sm-2 col-form-label col-form-label-sm text-center">비고</label> <label for="note" class="col-sm-2 col-form-label col-form-label-sm text-center">비고</label>
<div class="col-sm-10"> <div class="col-sm-10">
<input type="text" class="form-control form-control-sm" id="note" name="note"> <input type="text" class="form-control form-control-sm sailorInfo" id="note">
</div> </div>
</div> </div>
<div class="row mb-3"> <div class="row mb-3">
@ -154,7 +158,7 @@
--> -->
</div> </div>
</div> </div>
<input type="file" class="d-none" id="fileInputer" multiple> <input type="file" class="d-none sailorInfo" id="fileInputer" multiple>
</div> </div>
</div> </div>
<div class="col-6 border-start" id="shipOwnerDiv"> <div class="col-6 border-start" id="shipOwnerDiv">
@ -168,32 +172,32 @@
<label for="sailorNameKr2" class="col-sm-2 col-form-label col-form-label-sm text-center">선장명</label> <label for="sailorNameKr2" class="col-sm-2 col-form-label col-form-label-sm text-center">선장명</label>
<div class="col-sm-10"> <div class="col-sm-10">
<div class="input-group w-auto"> <div class="input-group w-auto">
<input type="text" class="form-control form-control-sm" id="sailorNameKr2" name="sailorNameKr" placeholder="한글"> <input type="text" class="form-control form-control-sm sailorInfo" id="sailorNameKr2" placeholder="한글">
<input type="text" class="form-control form-control-sm" id="sailorNameCn2" name="sailorNameCn" placeholder="중문"> <input type="text" class="form-control form-control-sm sailorInfo" id="sailorNameCn2" placeholder="중문">
<input type="text" class="form-control form-control-sm" id="sailorNamePinyin2" name="sailorNamePinyin" placeholder="병음"> <input type="text" class="form-control form-control-sm sailorInfo" id="sailorNamePinyin2" placeholder="병음">
</div> </div>
</div> </div>
</div> </div>
<div class="mb-3 row"> <div class="mb-3 row">
<label for="birthdate2" class="col-sm-2 col-form-label col-form-label-sm text-center">생년월일</label> <label for="birthdate2" class="col-sm-2 col-form-label col-form-label-sm text-center">생년월일</label>
<div class="col-sm-4"> <div class="col-sm-4">
<input type="text" class="form-control form-control-sm dateSelector" id="birthdate2" name="birthdate" placeholder="0000-00-00"> <input type="text" class="form-control form-control-sm sailorInfo dateSelector" id="birthdate2" placeholder="0000-00-00">
</div> </div>
<label for="sailorContact2" class="col-sm-2 col-form-label col-form-label-sm text-center">연락처</label> <label for="sailorContact2" class="col-sm-2 col-form-label col-form-label-sm text-center">연락처</label>
<div class="col-sm-4"> <div class="col-sm-4">
<input type="text" class="form-control form-control-sm" id="sailorContact2" name="sailorContact"> <input type="text" class="form-control form-control-sm sailorInfo" id="sailorContact2">
</div> </div>
</div> </div>
<div class="mb-3 row"> <div class="mb-3 row">
<label for="residence2" class="col-sm-2 col-form-label col-form-label-sm text-center">주소</label> <label for="residence2" class="col-sm-2 col-form-label col-form-label-sm text-center">주소</label>
<div class="col-sm-4"> <div class="col-sm-4">
<input type="text" class="form-control form-control-sm" id="residence2" name="residence" placeholder="성 기준"> <input type="text" class="form-control form-control-sm sailorInfo" id="residence2" placeholder="성 기준">
</div> </div>
</div> </div>
<div class="mb-3 row"> <div class="mb-3 row">
<label for="note2" class="col-sm-2 col-form-label col-form-label-sm text-center">비고</label> <label for="note2" class="col-sm-2 col-form-label col-form-label-sm text-center">비고</label>
<div class="col-sm-10"> <div class="col-sm-10">
<input type="text" class="form-control form-control-sm" id="note2" name="note"> <input type="text" class="form-control form-control-sm sailorInfo" id="note2">
</div> </div>
</div> </div>
</div> </div>
@ -204,13 +208,13 @@
<label for="boatNameCn" class="col-sm-1 col-form-label col-form-label-sm text-center">선명</label> <label for="boatNameCn" class="col-sm-1 col-form-label col-form-label-sm text-center">선명</label>
<div class="col-sm-4"> <div class="col-sm-4">
<div class="input-group w-auto"> <div class="input-group w-auto">
<input type="text" class="form-control form-control-sm boatNameKr" placeholder="한글" th:value="${crackdownStatus.fishingBoat.boatNameKr}"> <input type="text" class="form-control form-control-sm fishingBoatInfo boatNameKr" placeholder="한글" th:value="${crackdownStatus.fishingBoat.boatNameKr}">
<input type="text" class="form-control form-control-sm" id="boatNameCn" name="boatNameCn" placeholder="중문" th:value="${crackdownStatus.fishingBoat.boatNameCn}"> <input type="text" class="form-control form-control-sm fishingBoatInfo" id="boatNameCn" name="fishingBoat.boatNameCn" placeholder="중문" th:value="${crackdownStatus.fishingBoat.boatNameCn}">
</div> </div>
</div> </div>
<div class="col-sm-1"></div> <div class="col-sm-1"></div>
<label for="violationSelector" class="col-sm-1 col-form-label col-form-label-sm text-center">위반사항</label> <label for="violationSelector" class="col-sm-1 col-form-label col-form-label-sm text-center">위반사항</label>
<div class="col-sm-2"> <div class="col-sm-1">
<select class="form-select form-select-sm" id="violationSelector"> <select class="form-select form-select-sm" id="violationSelector">
<option value="">선택</option> <option value="">선택</option>
<th:block th:each="code:${vtList}"> <th:block th:each="code:${vtList}">
@ -218,49 +222,54 @@
</th:block> </th:block>
</select> </select>
</div> </div>
<div class="col-sm-4">
<div class="row" id="violationDiv">
</div>
</div>
</div> </div>
<div class="mb-3 row"> <div class="mb-3 row">
<label for="permitNum" class="col-sm-1 col-form-label col-form-label-sm text-center">허가번호</label> <label for="permitNum" class="col-sm-1 col-form-label col-form-label-sm text-center">허가번호</label>
<div class="col-sm-2"> <div class="col-sm-2">
<input type="text" class="form-control form-control-sm" id="permitNum" name="permitNum" th:value="${crackdownStatus.fishingBoat.permitNum}"> <input type="text" class="form-control form-control-sm fishingBoatInfo" id="permitNum" name="fishingBoat.permitNum" th:value="${crackdownStatus.fishingBoat.permitNum}">
</div> </div>
<label for="nationality" class="col-sm-1 col-form-label col-form-label-sm text-center">국적</label> <label for="nationality" class="col-sm-1 col-form-label col-form-label-sm text-center">국적</label>
<div class="col-sm-2"> <div class="col-sm-2">
<input type="text" class="form-control form-control-sm" id="nationality" name="nationality" th:value="${crackdownStatus.fishingBoat.nationality}"> <input type="text" class="form-control form-control-sm fishingBoatInfo" id="nationality" name="fishingBoat.nationality" th:value="${crackdownStatus.fishingBoat.nationality}">
</div> </div>
<label for="sailorCnt" class="col-sm-1 col-form-label col-form-label-sm text-center">승선원</label> <label for="sailorCnt" class="col-sm-1 col-form-label col-form-label-sm text-center">승선원</label>
<div class="col-sm-2"> <div class="col-sm-2">
<input type="text" class="form-control form-control-sm" id="sailorCnt" name="sailorCnt" placeholder="0인" th:value="${crackdownStatus.fishingBoat.sailorCnt}"> <input type="text" class="form-control form-control-sm fishingBoatInfo" id="sailorCnt" name="fishingBoat.sailorCnt" placeholder="0인" th:value="${crackdownStatus.fishingBoat.sailorCnt}">
</div> </div>
<label for="tonCnt" class="col-sm-1 col-form-label col-form-label-sm text-center">톤수</label> <label for="tonCnt" class="col-sm-1 col-form-label col-form-label-sm text-center">톤수</label>
<div class="col-sm-2"> <div class="col-sm-2">
<input type="text" class="form-control form-control-sm" id="tonCnt" name="tonCnt" placeholder="000.00t" th:value="${crackdownStatus.fishingBoat.tonCnt}"> <input type="text" class="form-control form-control-sm fishingBoatInfo" id="tonCnt" name="fishingBoat.tonCnt" placeholder="000.00t" th:value="${crackdownStatus.fishingBoat.tonCnt}">
</div> </div>
</div> </div>
<div class="mb-3 row"> <div class="mb-3 row">
<label for="fisheryType" class="col-sm-1 col-form-label col-form-label-sm text-center">선종</label> <label for="fisheryType" 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" id="fisheryType" name="fisheryType"> <select class="form-select form-select-sm fishingBoatInfo" id="fisheryType" name="fishingBoat.fisheryType">
<option value="">선택</option> <option value="">선택</option>
<th:block th:each="code:${ftList}"> <th:block th:each="code:${ftList}">
<option th:value="${code.itemCd}" th:text="${code.itemValue}" th:selected="${crackdownStatus.fishingBoat.fisheryType}"></option> <option th:value="${code.itemCd}" th:text="${code.itemValue}" th:selected="${code.itemCd eq crackdownStatus.fishingBoat.fisheryType}"></option>
</th:block> </th:block>
</select> </select>
</div> </div>
<label for="boatMaterial" class="col-sm-1 col-form-label col-form-label-sm text-center">선질</label> <label for="boatMaterial" 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" id="boatMaterial" name="boatMaterial"> <select class="form-select form-select-sm fishingBoatInfo" id="boatMaterial" name="fishingBoat.boatMaterial">
<option value="">선택</option> <option value="">선택</option>
<th:block th:each="code:${bmList}"> <th:block th:each="code:${bmList}">
<option th:value="${code.itemCd}" th:text="${code.itemValue}" th:selected="${crackdownStatus.fishingBoat.boatMaterial}"></option> <option th:value="${code.itemCd}" th:text="${code.itemValue}" th:selected="${code.itemCd eq crackdownStatus.fishingBoat.boatMaterial}"></option>
</th:block> </th:block>
</select> </select>
</div> </div>
<label for="boatNnySung" class="col-sm-1 col-form-label col-form-label-sm text-center">선적지</label> <label for="boatNnySung" class="col-sm-1 col-form-label col-form-label-sm text-center">선적지</label>
<div class="col-sm-2"> <div class="col-sm-2">
<div class="input-group w-auto"> <div class="input-group w-auto">
<input type="text" class="form-control form-control-sm" id="boatNnySung" name="boatNnySung" placeholder="성" th:value="${crackdownStatus.fishingBoat.boatNnySung}"> <input type="text" class="form-control form-control-sm fishingBoatInfo" id="boatNnySung" name="fishingBoat.boatNnySung" placeholder="성" th:value="${crackdownStatus.fishingBoat.boatNnySung}">
<input type="text" class="form-control form-control-sm" id="boatNnySi" name="boatNnySi" placeholder="시" th:value="${crackdownStatus.fishingBoat.boatNnySi}"> <input type="text" class="form-control form-control-sm fishingBoatInfo" id="boatNnySi" name="fishingBoat.boatNnySi" placeholder="시" th:value="${crackdownStatus.fishingBoat.boatNnySi}">
</div> </div>
</div> </div>
</div> </div>
@ -268,50 +277,50 @@
<label for="offenseType" class="col-sm-1 col-form-label col-form-label-sm text-center">범칙물</label> <label for="offenseType" class="col-sm-1 col-form-label col-form-label-sm text-center">범칙물</label>
<div class="col-sm-3"> <div class="col-sm-3">
<div class="input-group w-auto"> <div class="input-group w-auto">
<input type="text" class="form-control form-control-sm" id="offenseType" name="offenseType" placeholder="직접입력" th:value="${crackdownStatus.fishingBoat.offenseType}"> <input type="text" class="form-control form-control-sm fishingBoatInfo" id="offenseType" name="fishingBoat.offenseType" placeholder="직접입력" th:value="${crackdownStatus.fishingBoat.offenseType}">
<input type="text" class="form-control form-control-sm" id="offenseWeight" name="offenseWeight" placeholder="000kg" th:value="${crackdownStatus.fishingBoat.offenseWeight}"> <input type="text" class="form-control form-control-sm fishingBoatInfo" id="offenseWeight" name="fishingBoat.offenseWeight" placeholder="000kg" th:value="${crackdownStatus.fishingBoat.offenseWeight}">
</div> </div>
</div> </div>
<div class="col-sm-2"></div> <div class="col-sm-2"></div>
<label for="offenseQuantity" class="col-sm-1 col-form-label col-form-label-sm text-center">범칙물 위판량</label> <label for="offenseQuantity" class="col-sm-1 col-form-label col-form-label-sm text-center">범칙물 위판량</label>
<div class="col-sm-2"> <div class="col-sm-2">
<input type="text" class="form-control form-control-sm" id="offenseQuantity" name="offenseQuantity" placeholder="000kg" th:value="${crackdownStatus.fishingBoat.offenseQuantity}"> <input type="text" class="form-control form-control-sm fishingBoatInfo" id="offenseQuantity" name="fishingBoat.offenseQuantity" placeholder="000kg" th:value="${crackdownStatus.fishingBoat.offenseQuantity}">
</div> </div>
<label for="offenseAmount" class="col-sm-1 col-form-label col-form-label-sm text-center fs-11">범칙물 위판금액</label> <label for="offenseAmount" class="col-sm-1 col-form-label col-form-label-sm text-center fs-11">범칙물 위판금액</label>
<div class="col-sm-2"> <div class="col-sm-2">
<input type="text" class="form-control form-control-sm" id="offenseAmount" name="offenseAmount" placeholder="0원" th:value="${crackdownStatus.fishingBoat.offenseAmount}"> <input type="text" class="form-control form-control-sm fishingBoatInfo" id="offenseAmount" name="fishingBoat.offenseAmount" placeholder="최대 9,999,999,999원" th:value="${crackdownStatus.fishingBoat.offenseAmount}">
</div> </div>
</div> </div>
<div class="mb-3 row"> <div class="mb-3 row">
<label for="offenseIllegalWasteQuantity" class="col-sm-1 col-form-label col-form-label-sm text-center">범칙물 폐기량</label> <label for="offenseIllegalWasteQuantity" class="col-sm-1 col-form-label col-form-label-sm text-center">범칙물 폐기량</label>
<div class="col-sm-2"> <div class="col-sm-2">
<input type="text" class="form-control form-control-sm" id="offenseIllegalWasteQuantity" name="offenseIllegalWasteQuantity" placeholder="000kg" th:value="${crackdownStatus.fishingBoat.offenseIllegalWasteQuantity}"> <input type="text" class="form-control form-control-sm fishingBoatInfo" id="offenseIllegalWasteQuantity" name="fishingBoat.offenseIllegalWasteQuantity" placeholder="000kg" th:value="${crackdownStatus.fishingBoat.offenseIllegalWasteQuantity}">
</div> </div>
<label for="damboUnpaidAmount" class="col-sm-1 col-form-label col-form-label-sm text-center">담보금 미납액</label> <label for="damboUnpaidAmount" class="col-sm-1 col-form-label col-form-label-sm text-center">담보금 미납액</label>
<div class="col-sm-2"> <div class="col-sm-2">
<input type="text" class="form-control form-control-sm" id="damboUnpaidAmount" name="damboUnpaidAmount" placeholder="0원" th:value="${crackdownStatus.fishingBoat.damboUnpaidAmount}"> <input type="text" class="form-control form-control-sm fishingBoatInfo" id="damboUnpaidAmount" name="fishingBoat.damboUnpaidAmount" placeholder="최대 9,999,999,999원" th:value="${crackdownStatus.fishingBoat.damboUnpaidAmount}">
</div> </div>
<label for="damboPayment" class="col-sm-1 col-form-label col-form-label-sm text-center">담보금 납부액</label> <label for="damboPayment" class="col-sm-1 col-form-label col-form-label-sm text-center">담보금 납부액</label>
<div class="col-sm-2"> <div class="col-sm-2">
<input type="text" class="form-control form-control-sm" id="damboPayment" name="damboPayment" placeholder="0원" th:value="${crackdownStatus.fishingBoat.damboPayment}"> <input type="text" class="form-control form-control-sm fishingBoatInfo" id="damboPayment" name="fishingBoat.damboPayment" placeholder="최대 9,999,999,999원" th:value="${crackdownStatus.fishingBoat.damboPayment}">
</div> </div>
<label for="paymentPaymentDt" class="col-sm-1 col-form-label col-form-label-sm text-center fs-11">담보금 납부일시</label> <label for="paymentPaymentDt" class="col-sm-1 col-form-label col-form-label-sm text-center fs-11">담보금 납부일시</label>
<div class="col-sm-2"> <div class="col-sm-2">
<input type="text" class="form-control form-control-sm" id="paymentPaymentDt" name="paymentPaymentDt" placeholder="0000-00-00" th:value="${crackdownStatus.fishingBoat.paymentPaymentDt}"> <input type="text" class="form-control form-control-sm fishingBoatInfo dateTimeSelector" id="fishingBoat.paymentPaymentDt" name="paymentPaymentDt" placeholder="0000-00-00 00:00" th:value="${crackdownStatus.fishingBoat.paymentPaymentDt}">
</div> </div>
</div> </div>
<div class="mb-3 row"> <div class="mb-3 row">
<label for="confiscationFrame" class="col-sm-1 col-form-label col-form-label-sm text-center">압수어구</label> <label for="confiscationFrame" class="col-sm-1 col-form-label col-form-label-sm text-center">압수어구</label>
<div class="col-sm-4"> <div class="col-sm-4">
<div class="input-group w-auto"> <div class="input-group w-auto">
<input type="text" class="form-control form-control-sm" id="confiscationFrame" name="confiscationFrame" placeholder="틀" th:value="${crackdownStatus.fishingBoat.confiscationFrame}"> <input type="text" class="form-control form-control-sm fishingBoatInfo" id="confiscationFrame" name="fishingBoat.confiscationFrame" placeholder="틀" th:value="${crackdownStatus.fishingBoat.confiscationFrame}">
<input type="text" class="form-control form-control-sm" id="confiscationWidth" name="confiscationWidth" placeholder="폭" th:value="${crackdownStatus.fishingBoat.confiscationWidth}"> <input type="text" class="form-control form-control-sm fishingBoatInfo" id="confiscationWidth" name="fishingBoat.confiscationWidth" placeholder="폭" th:value="${crackdownStatus.fishingBoat.confiscationWidth}">
<input type="text" class="form-control form-control-sm" id="confiscationJo" name="confiscationJo" placeholder="조" th:value="${crackdownStatus.fishingBoat.confiscationJo}"> <input type="text" class="form-control form-control-sm fishingBoatInfo" id="confiscationJo" name="fishingBoat.confiscationJo" placeholder="조" th:value="${crackdownStatus.fishingBoat.confiscationJo}">
<input type="text" class="form-control form-control-sm" id="confiscationGae" name="confiscationGae" placeholder="개" th:value="${crackdownStatus.fishingBoat.confiscationGae}"> <input type="text" class="form-control form-control-sm fishingBoatInfo" id="confiscationGae" name="fishingBoat.confiscationGae" placeholder="개" th:value="${crackdownStatus.fishingBoat.confiscationGae}">
</div> </div>
</div> </div>
<div class="col-sm-3"> <div class="col-sm-3">
<input type="text" class="form-control form-control-sm" id="confiscationEtc" name="confiscationEtc" placeholder="기타" th:value="${crackdownStatus.fishingBoat.confiscationEtc}"> <input type="text" class="form-control form-control-sm fishingBoatInfo" id="confiscationEtc" name="fishingBoat.confiscationEtc" placeholder="기타" th:value="${crackdownStatus.fishingBoat.confiscationEtc}">
</div> </div>
</div> </div>
</div> </div>
@ -319,10 +328,10 @@
<div class="mb-3 row"> <div class="mb-3 row">
<label for="processStatus" class="col-sm-1 col-form-label col-form-label-sm text-center">처리현황</label> <label for="processStatus" 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" id="processStatus" name="processStatus"> <select class="form-select form-select-sm processResultInfo" id="processStatus" name="processResult.processStatus">
<option value="">선택</option> <option value="">선택</option>
<th:block th:each="code:${prList}"> <th:block th:each="code:${prList}">
<option th:value="${code.itemCd}" th:text="${code.itemValue}" th:selected="${crackdownStatus.processResult.processStatus}"></option> <option th:value="${code.itemCd}" th:text="${code.itemValue}" th:selected="${code.itemCd eq crackdownStatus.processResult.processStatus}"></option>
</th:block> </th:block>
</select> </select>
</div> </div>
@ -332,7 +341,7 @@
<input type="number" class="form-control form-control-sm pressurizedTimeTaken" id="pressurizedTimeTakenDate" placeholder="일" th:value="${crackdownStatus.processResult.pressurizedTimeTaken}"> <input type="number" class="form-control form-control-sm pressurizedTimeTaken" id="pressurizedTimeTakenDate" placeholder="일" th:value="${crackdownStatus.processResult.pressurizedTimeTaken}">
<input type="text" class="form-control form-control-sm pressurizedTimeTaken timeSelector" id="pressurizedTimeTakenTime" placeholder="00:00" th:value="${crackdownStatus.processResult.pressurizedTimeTaken}"> <input type="text" class="form-control form-control-sm pressurizedTimeTaken timeSelector" id="pressurizedTimeTakenTime" placeholder="00:00" th:value="${crackdownStatus.processResult.pressurizedTimeTaken}">
</div> </div>
<input type="hidden" name="pressurizedTimeTaken" id="pressurizedTimeTaken"> <input type="hidden" class="processResultInfo" name="processResult.pressurizedTimeTaken" id="pressurizedTimeTaken">
</div> </div>
<label for="warrantReqTakeDate" class="col-sm-1 col-form-label col-form-label-sm text-center fs-11">영장청구 소요시간</label> <label for="warrantReqTakeDate" class="col-sm-1 col-form-label col-form-label-sm text-center fs-11">영장청구 소요시간</label>
<div class="col-sm-2"> <div class="col-sm-2">
@ -340,42 +349,42 @@
<input type="number" class="form-control form-control-sm warrantReqTake" id="warrantReqTakeDate" placeholder="일" th:value="${crackdownStatus.processResult.warrantReqTakeTime}"> <input type="number" class="form-control form-control-sm warrantReqTake" id="warrantReqTakeDate" placeholder="일" th:value="${crackdownStatus.processResult.warrantReqTakeTime}">
<input type="text" class="form-control form-control-sm warrantReqTake timeSelector" id="warrantReqTakeTime" placeholder="00:00" th:value="${crackdownStatus.processResult.warrantReqTakeTime}"> <input type="text" class="form-control form-control-sm warrantReqTake timeSelector" id="warrantReqTakeTime" placeholder="00:00" th:value="${crackdownStatus.processResult.warrantReqTakeTime}">
</div> </div>
<input type="hidden" name="warrantReqTakeTime" id="warrantReqTake"> <input type="hidden" class="processResultInfo" name="processResult.warrantReqTakeTime" id="warrantReqTake">
</div> </div>
<label for="isIvsgtStop" class="col-sm-1 col-form-label col-form-label-sm text-center">수사중지 여부</label> <label for="isIvsgtStop" 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" id="isIvsgtStop" name="isIvsgtStop"> <select class="form-select form-select-sm processResultInfo" id="isIvsgtStop" name="processResult.isIvsgtStop">
<option value="">선택</option> <option value="">선택</option>
<option value="O">O</option> <option value="Y">O</option>
<option value="X">X</option> <option value="N">X</option>
</select> </select>
</div> </div>
</div> </div>
<div class="mb-3 row"> <div class="mb-3 row">
<label for="evictionDt" class="col-sm-1 col-form-label col-form-label-sm text-center">퇴거일</label> <label for="evictionDt" class="col-sm-1 col-form-label col-form-label-sm text-center">퇴거일</label>
<div class="col-sm-2"> <div class="col-sm-2">
<input type="text" class="form-control form-control-sm dateSelector" id="evictionDt" name="evictionDt" placeholder="0000-00-00" th:value="${crackdownStatus.processResult.evictionDt}"> <input type="text" class="form-control form-control-sm processResultInfo dateSelector" id="evictionDt" name="processResult.evictionDt" placeholder="0000-00-00" th:value="${crackdownStatus.processResult.evictionDt}">
</div> </div>
<label for="directHandoverDt" class="col-sm-1 col-form-label col-form-label-sm text-center">직접인계일</label> <label for="directHandoverDt" class="col-sm-1 col-form-label col-form-label-sm text-center">직접인계일</label>
<div class="col-sm-2"> <div class="col-sm-2">
<input type="text" class="form-control form-control-sm dateTimeSelector" id="directHandoverDt" name="directHandoverDt" placeholder="0000-00-00" th:value="${crackdownStatus.processResult.directHandoverDt}"> <input type="text" class="form-control form-control-sm processResultInfo dateSelector" id="directHandoverDt" name="processResult.directHandoverDt" placeholder="0000-00-00" th:value="${crackdownStatus.processResult.directHandoverDt}">
</div> </div>
<label for="handoverSeaPointLon" class="col-sm-1 col-form-label col-form-label-sm text-center">인계 해점</label> <label for="handoverSeaPointLon" class="col-sm-1 col-form-label col-form-label-sm text-center">인계 해점</label>
<div class="col-sm-4"> <div class="col-sm-2">
<div class="input-group w-auto"> <div class="input-group w-auto">
<input type="text" class="form-control form-control-sm" id="handoverSeaPointLon" name="handoverSeaPointLon" placeholder="00-00.00N" th:value="${crackdownStatus.processResult.handoverSeaPointLon}"> <input type="text" class="form-control form-control-sm processResultInfo" id="handoverSeaPointLon" name="processResult.handoverSeaPointLon" placeholder="00-00.00N" th:value="${crackdownStatus.processResult.handoverSeaPointLon}">
<input type="text" class="form-control form-control-sm" id="handoverSeaPointLat" name="handoverSeaPointLat" placeholder="000-00.00E" th:value="${crackdownStatus.processResult.handoverSeaPointLat}"> <input type="text" class="form-control form-control-sm processResultInfo" id="handoverSeaPointLat" name="processResult.handoverSeaPointLat" placeholder="000-00.00E" th:value="${crackdownStatus.processResult.handoverSeaPointLat}">
</div> </div>
</div> </div>
</div> </div>
<div class="mb-3 row"> <div class="mb-3 row">
<label for="handoverBoat" class="col-sm-1 col-form-label col-form-label-sm text-center">인계 함정</label> <label for="handoverBoat" class="col-sm-1 col-form-label col-form-label-sm text-center">인계 함정</label>
<div class="col-sm-2"> <div class="col-sm-2">
<input type="text" class="form-control form-control-sm" id="handoverBoat" name="handoverBoat" th:value="${crackdownStatus.processResult.handoverBoat}"> <input type="text" class="form-control form-control-sm processResultInfo" id="handoverBoat" name="processResult.handoverBoat" th:value="${crackdownStatus.processResult.handoverBoat}">
</div> </div>
<label for="middleTakeoverBoat" class="col-sm-1 col-form-label col-form-label-sm text-center">중측 인수함정</label> <label for="middleTakeoverBoat" class="col-sm-1 col-form-label col-form-label-sm text-center">중측 인수함정</label>
<div class="col-sm-2"> <div class="col-sm-2">
<input type="text" class="form-control form-control-sm" id="middleTakeoverBoat" name="middleTakeoverBoat" th:value="${crackdownStatus.processResult.middleTakeoverBoat}"> <input type="text" class="form-control form-control-sm processResultInfo" id="middleTakeoverBoat" name="processResult.middleTakeoverBoat" th:value="${crackdownStatus.processResult.middleTakeoverBoat}">
</div> </div>
</div> </div>
<hr> <hr>
@ -429,25 +438,25 @@
<div class="mb-3 row"> <div class="mb-3 row">
<label for="consignmentStartDt" class="col-sm-1 col-form-label col-form-label-sm text-center">위탁시작일</label> <label for="consignmentStartDt" class="col-sm-1 col-form-label col-form-label-sm text-center">위탁시작일</label>
<div class="col-sm-2"> <div class="col-sm-2">
<input type="text" class="form-control form-control-sm dateSelector" id="consignmentStartDt" name="consignmentStartDt" placeholder="0000-00-00" th:value="${crackdownStatus.processResult.consignmentStartDt}"> <input type="text" class="form-control form-control-sm processResultInfo dateSelector" id="consignmentStartDt" name="processResult.consignmentStartDt" placeholder="0000-00-00" th:value="${crackdownStatus.processResult.consignmentStartDt}">
</div> </div>
<label for="consignmentEndDt" class="col-sm-1 col-form-label col-form-label-sm text-center">위탁종료일</label> <label for="consignmentEndDt" class="col-sm-1 col-form-label col-form-label-sm text-center">위탁종료일</label>
<div class="col-sm-2"> <div class="col-sm-2">
<input type="text" class="form-control form-control-sm dateSelector" id="consignmentEndDt" name="consignmentEndDt" placeholder="0000-00-00" th:value="${crackdownStatus.processResult.consignmentEndDt}"> <input type="text" class="form-control form-control-sm processResultInfo dateSelector" id="consignmentEndDt" name="processResult.consignmentEndDt" placeholder="0000-00-00" th:value="${crackdownStatus.processResult.consignmentEndDt}">
</div> </div>
<label for="confiscationDt" class="col-sm-1 col-form-label col-form-label-sm text-center">몰수확정일</label> <label for="confiscationDt" class="col-sm-1 col-form-label col-form-label-sm text-center">몰수확정일</label>
<div class="col-sm-2"> <div class="col-sm-2">
<input type="text" class="form-control form-control-sm dateSelector" id="confiscationDt" name="confiscationDt" placeholder="0000-00-00" th:value="${crackdownStatus.processResult.confiscationDt}"> <input type="text" class="form-control form-control-sm processResultInfo dateSelector" id="confiscationDt" name="processResult.confiscationDt" placeholder="0000-00-00" th:value="${crackdownStatus.processResult.confiscationDt}">
</div> </div>
</div> </div>
<div class="mb-3 row"> <div class="mb-3 row">
<label for="boatDisposalDt" class="col-sm-1 col-form-label col-form-label-sm text-center">폐선일</label> <label for="boatDisposalDt" class="col-sm-1 col-form-label col-form-label-sm text-center">폐선일</label>
<div class="col-sm-2"> <div class="col-sm-2">
<input type="text" class="form-control form-control-sm dateSelector" id="boatDisposalDt" name="boatDisposalDt" placeholder="0000-00-00" th:value="${crackdownStatus.processResult.boatDisposalDt}"> <input type="text" class="form-control form-control-sm processResultInfo dateSelector" id="boatDisposalDt" name="processResult.boatDisposalDt" placeholder="0000-00-00" th:value="${crackdownStatus.processResult.boatDisposalDt}">
</div> </div>
<label for="boatDisposalType" class="col-sm-1 col-form-label col-form-label-sm text-center">폐선종류</label> <label for="boatDisposalType" 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" id="boatDisposalType" name="boatDisposalType"> <select class="form-select form-select-sm processResultInfo" id="boatDisposalType" name="processResult.boatDisposalType">
<option value="">선택</option> <option value="">선택</option>
<th:block th:each="code:${bdtList}"> <th:block th:each="code:${bdtList}">
<option th:value="${code.itemCd}" th:text="${code.itemValue}"></option> <option th:value="${code.itemCd}" th:text="${code.itemValue}"></option>
@ -456,77 +465,65 @@
</div> </div>
<label for="returnDt" class="col-sm-1 col-form-label col-form-label-sm text-center">환부일</label> <label for="returnDt" class="col-sm-1 col-form-label col-form-label-sm text-center">환부일</label>
<div class="col-sm-2"> <div class="col-sm-2">
<input type="text" class="form-control form-control-sm dateSelector" id="returnDt" name="returnDt" placeholder="0000-00-00" th:value="${crackdownStatus.processResult.returnDt}"> <input type="text" class="form-control form-control-sm processResultInfo dateSelector" id="returnDt" name="processResult.returnDt" placeholder="0000-00-00" th:value="${crackdownStatus.processResult.returnDt}">
</div> </div>
</div> </div>
<div class="mb-3 row"> <div class="mb-3 row">
<label for="captainRestriction" class="col-sm-1 col-form-label col-form-label-sm text-center">선장구속</label> <label for="captainRestriction" 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" id="captainRestriction"> <select class="form-select form-select-sm sailorInfo" id="captainRestriction">
<option value="">선택</option> <option value="">선택</option>
<option value="O">O</option> <option value="Y">O</option>
<option value="X">X</option> <option value="N">X</option>
</select> </select>
</div> </div>
<label for="navigatingOfficerRestriction" class="col-sm-1 col-form-label col-form-label-sm text-center">항해장구속</label> <label for="navigatingOfficerRestriction" 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" id="navigatingOfficerRestriction"> <select class="form-select form-select-sm sailorInfo" id="navigatingOfficerRestriction">
<option value="">선택</option> <option value="">선택</option>
<option value="O">O</option> <option value="Y">O</option>
<option value="X">X</option> <option value="N">X</option>
</select> </select>
</div> </div>
<label for="chiefEngineerRestriction" class="col-sm-1 col-form-label col-form-label-sm text-center">기관장구속</label> <label for="chiefEngineerRestriction" 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" id="chiefEngineerRestriction"> <select class="form-select form-select-sm sailorInfo" id="chiefEngineerRestriction">
<option value="">선택</option> <option value="">선택</option>
<option value="O">O</option> <option value="Y">O</option>
<option value="X">X</option> <option value="N">X</option>
</select> </select>
</div> </div>
</div> </div>
<div class="mb-3 row"> <div class="mb-3 row">
<label for="normalSailorRestriction" class="col-sm-1 col-form-label col-form-label-sm text-center"> <label for="sailorAddBtn" class="col-sm-1 col-form-label col-form-label-sm text-center">
선원구속 선원구속
<i class="bi bi-plus-square text-primary" id="sailorAddBtn"></i> <i class="bi bi-plus-square text-primary" id="sailorAddBtn"></i>
</label> </label>
<div class="col-sm-10 row" id="sailorRestrictionHome"> <div class="col-sm-10 row" id="sailorRestrictionHome">
<div class="col-4 sailorRestriction">
<div class="input-group w-auto">
<select class="form-select form-select-sm isRestriction" id="normalSailorRestriction">
<option value="">선택</option>
<option value="O">O</option>
<option value="X">X</option>
</select>
<input type="text" class="form-control form-control-sm" id="normalSailor" placeholder="이름">
<button type="button" class="btn btn-sm btn-outline-secondary opacity-50 sailorRemoveBtn">
<i class="bi bi-dash-square text-danger"></i>
</button>
</div>
</div>
</div> </div>
</div> </div>
<div class="mb-3 row"> <div class="mb-3 row">
<label for="exileCnt" class="col-sm-1 col-form-label col-form-label-sm text-center">추방인원</label> <label for="exileCnt" class="col-sm-1 col-form-label col-form-label-sm text-center">추방인원</label>
<div class="col-sm-2"> <div class="col-sm-2">
<input type="text" class="form-control form-control-sm" id="exileCnt" name="exileCnt" placeholder="00명" th:value="${crackdownStatus.processResult.exileCnt}"> <input type="text" class="form-control form-control-sm processResultInfo" id="exileCnt" name="processResult.exileCnt" placeholder="00명" th:value="${crackdownStatus.processResult.exileCnt}">
</div> </div>
<label for="exileDt" class="col-sm-1 col-form-label col-form-label-sm text-center">추방일</label> <label for="exileDt" class="col-sm-1 col-form-label col-form-label-sm text-center">추방일</label>
<div class="col-sm-2"> <div class="col-sm-2">
<input type="text" class="form-control form-control-sm dateSelector" id="exileDt" name="exileDt" placeholder="0000-00-00" th:value="${crackdownStatus.processResult.exileDt}"> <input type="text" class="form-control form-control-sm processResultInfo dateSelector" id="exileDt" name="processResult.exileDt" placeholder="0000-00-00" th:value="${crackdownStatus.processResult.exileDt}">
</div> </div>
<label for="flight" class="col-sm-1 col-form-label col-form-label-sm text-center">항공편</label> <label for="flight" class="col-sm-1 col-form-label col-form-label-sm text-center">항공편</label>
<div class="col-sm-2"> <div class="col-sm-2">
<input type="text" class="form-control form-control-sm" id="flight" name="flight" th:value="${crackdownStatus.processResult.flight}"> <input type="text" class="form-control form-control-sm processResultInfo" id="flight" name="processResult.flight" th:value="${crackdownStatus.processResult.flight}">
</div> </div>
</div> </div>
<div class="row mb-3"> <div class="row mb-3">
<label for="immigrationOfficeName" class="col-sm-1 col-form-label col-form-label-sm text-center">출입국 담당자</label> <label for="immigrationOfficeName" class="col-sm-1 col-form-label col-form-label-sm text-center">출입국 담당자</label>
<div class="col-sm-4"> <div class="col-sm-4">
<div class="input-group w-auto"> <div class="input-group w-auto">
<input type="text" class="form-control form-control-sm" id="immigrationOfficeName" name="immigrationOfficeName" placeholder="사무소명" th:value="${crackdownStatus.processResult.immigrationOfficeName}"> <input type="text" class="form-control form-control-sm processResultInfo" id="immigrationOfficeName" name="processResult.immigrationOfficeName" placeholder="사무소명" th:value="${crackdownStatus.processResult.immigrationOfficeName}">
<input type="text" class="form-control form-control-sm" id="immigrationOfficeOfficerName" name="immigrationOfficeOfficerName" placeholder="이름" th:value="${crackdownStatus.processResult.immigrationOfficeOfficerName}"> <input type="text" class="form-control form-control-sm processResultInfo" id="immigrationOfficeOfficerName" name="processResult.immigrationOfficeOfficerName" placeholder="이름" th:value="${crackdownStatus.processResult.immigrationOfficeOfficerName}">
<input type="text" class="form-control form-control-sm" id="immigrationOfficeOfficerContact" name="immigrationOfficeOfficerContact" placeholder="연락처" th:value="${crackdownStatus.processResult.immigrationOfficeOfficerContact}"> <input type="text" class="form-control form-control-sm processResultInfo" id="immigrationOfficeOfficerContact" name="processResult.immigrationOfficeOfficerContact" placeholder="연락처" th:value="${crackdownStatus.processResult.immigrationOfficeOfficerContact}">
</div> </div>
</div> </div>
</div> </div>

View File

@ -214,5 +214,31 @@
</div> </div>
</div> </div>
</div> </div>
<div class="modal fade" id="crackdownSubModal" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1" aria-labelledby="crackdownSubModalLabel" aria-hidden="true">
<div class="modal-dialog modal-xl modal-dialog-scrollable">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="crackdownSubModalLabel">단속현황 불러오기</h5>
<input type="hidden" id="modalUrl" value="/modal/crackdownStatusModal">
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body" id="subModalBody">
<div class="row">
<div class="col-12">
<form method="get" action="#" id="modalSearchForm">
<input type="hidden" name="pageIndex" id="modalPageIndex" value="1">
<input type="hidden" name="rowCnt" value="10">
</form>
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-primary" id="getCrackdownBtn">불러오기</button>
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">닫기</button>
</div>
</div>
</div>
</div>
</div> </div>
</html> </html>