불법조업 외국어선 작업완료.

master
강석 최 2023-01-19 11:45:31 +09:00
parent 1aa45812f4
commit ef7d6b9c89
14 changed files with 620 additions and 98 deletions

View File

@ -0,0 +1,41 @@
package com.dbnt.faisp.main.faStatistics.crackdownsStatus;
import com.dbnt.faisp.main.authMgt.service.AuthMgtService;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.crackdownStatus.CrackdownStatus;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.crackdownStatus.CrackdownStatusVersion;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.crackdownStatus.UnlawfulFishingVersion;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.fishingBoat.FishingBoat;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.processResult.ProcessResult;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.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.faStatistics.crackdownsStatus.service.UnlawfulFishingService;
import com.dbnt.faisp.main.userInfo.model.UserInfo;
import lombok.RequiredArgsConstructor;
import org.springframework.security.core.annotation.AuthenticationPrincipal;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.servlet.ModelAndView;
import java.time.LocalDateTime;
import java.util.List;
@RestController
@RequiredArgsConstructor
@RequestMapping("/faStatistics")
public class UnlawfulFishingController {
private final UnlawfulFishingService unlawfulFishingService;
@GetMapping("/crackdownStatusVersionInfo")
public ModelAndView selectUnlawfulFishingVersionInfo(Integer cdsKey, Integer versionNo){
ModelAndView mav = new ModelAndView("/faStatistics/unlawfulFishing/versionInfo");
mav.addObject("infos", unlawfulFishingService.selectUnlawfulFishingVersionInfo(cdsKey, versionNo));
return mav;
}
}

View File

@ -1,18 +1,23 @@
package com.dbnt.faisp.main.faStatistics.crackdownsStatus.mapper; package com.dbnt.faisp.main.faStatistics.crackdownsStatus.mapper;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.crackdownStatus.CrackdownStatus; import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.crackdownStatus.CrackdownStatus;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.crackdownStatus.CrackdownStatusVersion;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.fishingBoat.FishingBoat; import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.fishingBoat.FishingBoat;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.fishingBoat.FishingBoatVersion; import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.fishingBoat.FishingBoatVersion;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.processResult.ProcessResultVersion;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import java.util.List; import java.util.List;
@Mapper @Mapper
public interface CrackdownStatusMapper { public interface CrackdownStatusMapper {
List<CrackdownStatus> selectCrackdownStatusList(CrackdownStatus crackdownStatus); List<CrackdownStatus> selectCrackdownStatusList(CrackdownStatus crackdownStatus);
Integer selectCrackdownStatusListCnt(CrackdownStatus crackdownStatus); Integer selectCrackdownStatusListCnt(CrackdownStatus crackdownStatus);
List<CrackdownStatus> selectFishingBoatList(CrackdownStatus crackdownStatus); List<CrackdownStatus> selectFishingBoatList(CrackdownStatus crackdownStatus);
Integer selectFishingBoatListCnt(CrackdownStatus crackdownStatus); Integer selectFishingBoatListCnt(CrackdownStatus crackdownStatus);
List<FishingBoatVersion> selectFishingBoatVersionList(Integer fbKey);
List<CrackdownStatusVersion> selectCrackdownStatusVersionList(Integer cdsKey);
List<FishingBoatVersion> selectFishingBoatVersionList(Integer fbKey);
List<ProcessResultVersion> selectProcessResultVersionList(Integer prKey);
} }

View File

@ -35,13 +35,14 @@ public class CrackdownStatus extends CrackdownStatusBaseEntity {
@Column(name="status") @Column(name="status")
private String status; private String status;
@Transient
private List<CrackdownStatusVersion> crackdownStatusVersionList;
@Transient @Transient
private List<Violation> violationList; private List<Violation> violationList;
@Transient @Transient
private FishingBoat fishingBoat; private FishingBoat fishingBoat;
@Transient @Transient
private List<FishingBoatVersion> fishingBoatVersionList;
@Transient
private ProcessResult processResult; private ProcessResult processResult;
@Transient @Transient
private List<Sailor> sailorList; private List<Sailor> sailorList;

View File

@ -0,0 +1,16 @@
package com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.crackdownStatus;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.fishingBoat.FishingBoatVersion;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.processResult.ProcessResultVersion;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
@Getter
@Setter
@NoArgsConstructor
public class UnlawfulFishingVersion {
private CrackdownStatusVersion crackdownStatusVersion;
private FishingBoatVersion fishingBoatVersion;
private ProcessResultVersion processResultVersion;
}

View File

@ -9,6 +9,4 @@ import java.util.Optional;
public interface CrackdownStatusVersionRepository extends JpaRepository<CrackdownStatusVersion, CrackdownStatusVersion.CrackdownStatusVersionId> { public interface CrackdownStatusVersionRepository extends JpaRepository<CrackdownStatusVersion, CrackdownStatusVersion.CrackdownStatusVersionId> {
Optional<CrackdownStatusVersion> findTopByCdsKeyOrderByVersionNoDesc(Integer cdsKey); Optional<CrackdownStatusVersion> findTopByCdsKeyOrderByVersionNoDesc(Integer cdsKey);
List<CrackdownStatusVersion> findByCdsKey(Integer cdsKey); List<CrackdownStatusVersion> findByCdsKey(Integer cdsKey);
CrackdownStatusVersion findByVersionNoAndCdsKey(Integer versionNo, Integer cdsKey);
} }

View File

@ -7,8 +7,7 @@ import java.util.List;
import java.util.Optional; import java.util.Optional;
public interface ProcessResultVersionRepository extends JpaRepository<ProcessResultVersion, ProcessResultVersion.ProcessResultVersionId> { public interface ProcessResultVersionRepository extends JpaRepository<ProcessResultVersion, ProcessResultVersion.ProcessResultVersionId> {
Optional<ProcessResultVersion> findTopByPrKeyOrderByVersionNoDesc(Integer prKey); Optional<ProcessResultVersion> findTopByPrKeyOrderByVersionNoDesc(Integer prKey);
List<ProcessResultVersion> findByPrKey(Integer prKey); List<ProcessResultVersion> findByPrKey(Integer prKey);
ProcessResultVersion findByVersionNoAndPrKey(Integer versionNo, Integer prKey);
} }

View File

@ -48,8 +48,8 @@ public class CrackdownStatusService extends BaseService {
return crackdownStatusVersionRepository.findByCdsKey(cdsKey); return crackdownStatusVersionRepository.findByCdsKey(cdsKey);
} }
public CrackdownStatusVersion selectCrackdownStatusVersion(Integer versionNo, Integer cdsKey) { public CrackdownStatusVersion selectCrackdownStatusVersion(Integer cdsKey, Integer versionNo) {
return crackdownStatusVersionRepository.findByVersionNoAndCdsKey(versionNo, cdsKey); return crackdownStatusVersionRepository.findById(new CrackdownStatusVersion.CrackdownStatusVersionId(cdsKey, versionNo)).orElse(new CrackdownStatusVersion());
} }
@Transactional @Transactional

View File

@ -52,8 +52,8 @@ public class FishingBoatService extends BaseService {
} }
public CrackdownStatus selectCrackdownStatus(Integer cdsKey) { public CrackdownStatus selectCrackdownStatus(Integer cdsKey) {
CrackdownStatus crackdownStatus = crackdownStatusRepository.findById(cdsKey).orElse(null); CrackdownStatus crackdownStatus = crackdownStatusRepository.findById(cdsKey).orElse(null);
crackdownStatus.setCrackdownStatusVersionList(crackdownStatusMapper.selectCrackdownStatusVersionList(crackdownStatus.getCdsKey()));
crackdownStatus.setFishingBoat(fishingBoatRepository.findByCdsKey(cdsKey).orElse(new FishingBoat())); crackdownStatus.setFishingBoat(fishingBoatRepository.findByCdsKey(cdsKey).orElse(new FishingBoat()));
crackdownStatus.setFishingBoatVersionList(crackdownStatusMapper.selectFishingBoatVersionList(crackdownStatus.getFishingBoat().getFbKey()));
crackdownStatus.setProcessResult(processResultRepository.findByCdsKey(cdsKey).orElse(new ProcessResult())); crackdownStatus.setProcessResult(processResultRepository.findByCdsKey(cdsKey).orElse(new ProcessResult()));
if(crackdownStatus.getFishingBoat()!=null){ if(crackdownStatus.getFishingBoat()!=null){
crackdownStatus.setViolationList(violationRepository.findByFbKey(crackdownStatus.getFishingBoat().getFbKey())); crackdownStatus.setViolationList(violationRepository.findByFbKey(crackdownStatus.getFishingBoat().getFbKey()));
@ -194,10 +194,14 @@ public class FishingBoatService extends BaseService {
return crackdownStatusRepository.findTop1ByCaseNum(caseNum).orElse(null)==null?0:1; return crackdownStatusRepository.findTop1ByCaseNum(caseNum).orElse(null)==null?0:1;
} }
public FishingBoatVersion selectFishingBoatVersion(Integer fbKey, Integer versionNo) { public FishingBoatVersion selectFishingBoatVersion(Integer cdsKey, Integer versionNo) {
FishingBoatVersion fishingBoat = fishingBoatVersionRepository.findById(new FishingBoatVersion.FishingBoatVersionId(fbKey, versionNo)).orElse(null); FishingBoat fishingBoat = fishingBoatRepository.findByCdsKey(cdsKey).orElse(null);
fishingBoat.setViolationList(violationVersionRepository.findByFbKeyAndVersionNoOrderByViolationKeyAsc(fbKey, versionNo)); if(fishingBoat==null){
return fishingBoat; return null;
}
FishingBoatVersion fishingBoatVersion = fishingBoatVersionRepository.findById(new FishingBoatVersion.FishingBoatVersionId(fishingBoat.getFbKey(), versionNo)).orElse(new FishingBoatVersion());
fishingBoatVersion.setViolationList(violationVersionRepository.findByFbKeyAndVersionNoOrderByViolationKeyAsc(fishingBoat.getFbKey(), versionNo));
return fishingBoatVersion;
} }
public int saveFishingBoatOnly(int cdsKey, FishingBoat fishingBoat, List<Violation> violationList) { public int saveFishingBoatOnly(int cdsKey, FishingBoat fishingBoat, List<Violation> violationList) {

View File

@ -23,8 +23,6 @@ import java.util.List;
public class ProcessResultService extends BaseService { public class ProcessResultService extends BaseService {
private final ProcessResultMapper processResultMapper; private final ProcessResultMapper processResultMapper;
private final CrackdownStatusRepository crackdownStatusRepository;
private final FishingBoatRepository fishingBoatRepository;
private final ViolationRepository violationRepository; private final ViolationRepository violationRepository;
private final ProcessResultRepository processResultRepository; private final ProcessResultRepository processResultRepository;
private final ProcessResultVersionRepository processResultVersionRepository; private final ProcessResultVersionRepository processResultVersionRepository;
@ -45,8 +43,13 @@ public class ProcessResultService extends BaseService {
return processResultVersionRepository.findByPrKey(prKey); return processResultVersionRepository.findByPrKey(prKey);
} }
public ProcessResultVersion selectProcessResultVersion(Integer versionNo, Integer prKey) { public ProcessResultVersion selectProcessResultVersion(Integer cdsKey, Integer versionNo) {
return processResultVersionRepository.findByVersionNoAndPrKey(versionNo, prKey); ProcessResult processResult = processResultRepository.findByCdsKey(cdsKey).orElse(null);
if (processResult == null){
return null;
}else{
return processResultVersionRepository.findById(new ProcessResultVersion.ProcessResultVersionId(processResult.getPrKey(), versionNo)).orElse(new ProcessResultVersion());
}
} }
@Transactional @Transactional
@ -74,39 +77,6 @@ public class ProcessResultService extends BaseService {
saveProcessResultVersion(processResult); saveProcessResultVersion(processResult);
} }
/*if (processResult.getCrackdownStatus() != null) {
if (processResult.getCrackdownStatus().getCrackdownPoliceEtc() != null) {
processResult.getCrackdownStatus().setCrackdownPolice(processResult.getCrackdownStatus().getCrackdownPoliceEtc());
}
CrackdownStatus existingCrackdownStatus = crackdownStatusRepository.findByCdsKey(processResult.getCdsKey()).orElse(null);
Utils.copyNonNullProperties(processResult, existingCrackdownStatus);
processResult.setCrackdownStatus(crackdownStatusRepository.save(existingCrackdownStatus));
}*/
/*if (processResult.getFishingBoat() != null) {
FishingBoat existingFishingBoat = fishingBoatRepository.findByCdsKey(processResult.getCdsKey()).orElse(null);
Utils.copyNonNullProperties(processResult, existingFishingBoat);
fishingBoatRepository.save(existingFishingBoat);
}*/
/*if (processResult.getViolationList().get(0).getViolation() != null) {
Violation lastViolation = violationRepository.findTopByFbKeyOrderByViolationKeyDesc(processResult.getCrackdownStatus().getFbKey()).orElse(null);
int violationKey = lastViolation==null?1:(lastViolation.getViolationKey()+1);
for(Violation violation: processResult.getViolationList()){
if (violation.getViolationEtc() != null) {
violation.setViolation(violation.getViolationEtc());
}
violation.setFbKey(processResult.getFishingBoat().getFbKey());
if (violation.getViolationKey() == null) {
violation.setViolationKey(violationKey);
violationKey++;
}
}
violationRepository.saveAll(processResult.getViolationList());
}*/
return prKey; return prKey;
} }

View File

@ -1,6 +1,7 @@
package com.dbnt.faisp.main.faStatistics.crackdownsStatus.service; package com.dbnt.faisp.main.faStatistics.crackdownsStatus.service;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.crackdownStatus.CrackdownStatus; import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.crackdownStatus.CrackdownStatus;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.crackdownStatus.UnlawfulFishingVersion;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.fishingBoat.FishingBoat; import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.fishingBoat.FishingBoat;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.sailor.Sailor; import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.sailor.Sailor;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
@ -35,6 +36,14 @@ public class UnlawfulFishingService {
return cdsKey; return cdsKey;
} }
public UnlawfulFishingVersion selectUnlawfulFishingVersionInfo(Integer cdsKey, Integer versionNo) {
UnlawfulFishingVersion ufv = new UnlawfulFishingVersion();
ufv.setCrackdownStatusVersion(crackdownStatusService.selectCrackdownStatusVersion(cdsKey, versionNo));
ufv.setFishingBoatVersion(fishingBoatService.selectFishingBoatVersion(cdsKey, versionNo));
ufv.setProcessResultVersion(processResultService.selectProcessResultVersion(cdsKey, versionNo));
return ufv;
}
private CrackdownStatus setWriteInfo(CrackdownStatus crackdownStatus){ private CrackdownStatus setWriteInfo(CrackdownStatus crackdownStatus){
FishingBoat fishingBoat = crackdownStatus.getFishingBoat(); FishingBoat fishingBoat = crackdownStatus.getFishingBoat();
fishingBoat.setWrtDt(LocalDateTime.now()); fishingBoat.setWrtDt(LocalDateTime.now());

View File

@ -429,16 +429,16 @@
on b.fb_key = d.fb_key and d.position = 'POS001' on b.fb_key = d.fb_key and d.position = 'POS001'
<include refid="selectFishingBoatListWhere"></include> <include refid="selectFishingBoatListWhere"></include>
</select> </select>
<select id="selectFishingBoatVersionList" resultType="FishingBoatVersion" parameterType="int"> <select id="selectCrackdownStatusVersionList" resultType="CrackdownStatusVersion" parameterType="int">
select fb_key, select cds_key,
version_no, version_no,
wrt_organ, wrt_organ,
wrt_part, wrt_part,
wrt_user_grd, wrt_user_grd,
wrt_user_nm, wrt_user_nm,
wrt_dt wrt_dt
from fishing_boat_version from crackdown_status_version
where fb_key = #{fb_key} where cds_key = #{cds_key}
order by version_no desc order by version_no desc
</select> </select>
</mapper> </mapper>

View File

@ -121,15 +121,15 @@ $(document).on('click', '.versionInfoTr', function (){
$(".versionInfoChkbox").prop("checked", false); $(".versionInfoChkbox").prop("checked", false);
$(this).find(".versionInfoChkbox")[0].checked = true $(this).find(".versionInfoChkbox")[0].checked = true
$.ajax({ $.ajax({
url: '/faStatistics/fishingBoatVersionInfo', url: '/faStatistics/crackdownStatusVersionInfo',
data: { data: {
fbKey: $(this).find(".fbKey").val(), cdsKey: $(this).find(".cdsKey").val(),
versionNo: $(this).find(".versionNo").val() versionNo: $(this).find(".versionNo").val()
}, },
type: 'GET', type: 'GET',
dataType:"html", dataType:"html",
success: function(html){ success: function(html){
$("#fishingBoardVersionInfoDiv").empty().append(html); $("#versionInfoDiv").empty().append(html);
}, },
error:function(e){ error:function(e){
ajaxErrorAction(e); ajaxErrorAction(e);

View File

@ -9,19 +9,35 @@
<li class="nav-item" role="presentation"> <li class="nav-item" role="presentation">
<button class="nav-link active" id="fishingBoatViewTab" data-bs-toggle="tab" data-bs-target="#fishingBoatViewTabPanel" type="button" role="tab" aria-controls="fishingBoatViewTabPanel" aria-selected="true">최신버전</button> <button class="nav-link active" id="fishingBoatViewTab" data-bs-toggle="tab" data-bs-target="#fishingBoatViewTabPanel" type="button" role="tab" aria-controls="fishingBoatViewTabPanel" aria-selected="true">최신버전</button>
</li> </li>
<li class="nav-item" role="presentation"> <li class="nav-item" role="presentation" th:unless="${#lists.size(crackdownStatus.crackdownStatusVersionList) <= 1}">
<button class="nav-link" id="fishingBoatVersionTab" data-bs-toggle="tab" data-bs-target="#fishingBoatVersionTabPanel" type="button" role="tab" aria-controls="fishingBoatHistoryTabPanel" aria-selected="false">수정이력</button> <button class="nav-link" id="fishingBoatVersionTab" data-bs-toggle="tab" data-bs-target="#fishingBoatVersionTabPanel" type="button" role="tab" aria-controls="fishingBoatHistoryTabPanel" aria-selected="false">수정이력</button>
</li> </li>
</ul> </ul>
<div class="tab-content bg-white border border-top-0"> <div class="tab-content bg-white border border-top-0">
<div class="tab-pane fade p-2 mx-2 show active" id="fishingBoatViewTabPanel" role="tabpanel" aria-labelledby="fishingBoatViewTab" tabindex="0"> <div class="tab-pane fade p-2 mx-2 show active" id="fishingBoatViewTabPanel" role="tabpanel" aria-labelledby="fishingBoatViewTab" tabindex="0">
<input type="hidden" class="cdsKey" th:value="${crackdownStatus.cdsKey}"> <input type="hidden" class="cdsKey" th:value="${crackdownStatus.cdsKey}">
<div class="row justify-content-between">
<div class="col-auto"></div>
<div class="col-auto" th:text="|최종수정일: ${#temporals.format(crackdownStatus.fishingBoat.wrtDt, 'yyyy-MM-dd HH:mm')}|"></div>
</div>
<div class="row py-2"> <div class="row py-2">
<div class="col-auto">■ 단속정보</div> <div class="col-12">
<div class="row justify-content-end">
<div class="col-auto">
<th:block th:text="|최종수정일: ${#temporals.format(crackdownStatus.fishingBoat.wrtDt, 'yyyy-MM-dd HH:mm')}|"></th:block>
</div>
</div>
<div class="row justify-content-between">
<div class="col-auto">■ 단속정보</div>
<div class="col-auto">
<th:block th:each="code:${session.commonCode.get('DST')}">
<th:block th:if="${crackdownStatus.status eq code.itemCd}" th:text="|상태: ${code.itemValue}|"></th:block>
</th:block>
<th:block th:if="${#lists.size(crackdownStatus.crackdownStatusVersionList) <= 1}">
(수정 이력 없음)
</th:block>
<th:block th:unless="${#lists.size(crackdownStatus.crackdownStatusVersionList) <= 1}">
<th:block th:text="${#strings.concat('(', #lists.size(crackdownStatus.crackdownStatusVersionList), '차 수정본)') }"></th:block>
</th:block>
</div>
</div>
</div>
</div> </div>
<div class="row border border-secondary"> <div class="row border border-secondary">
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-gainsboro py-2 border-end border-secondary text-center">사건번호</label> <label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-gainsboro py-2 border-end border-secondary text-center">사건번호</label>
@ -534,27 +550,6 @@
</div> </div>
</div> </div>
</div> </div>
<!--<div class="row border border-secondary border-top-0">
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-gainsboro py-2 border-end border-secondary text-center">추방인원</label>
<div class="col-sm-2 border-end border-secondary">
<input type="text" class="form-control form-control-sm border-0" readonly th:value="${crackdownStatus.processResult.exileCnt}">
</div>
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-gainsboro py-2 border-end border-secondary text-center">추방일</label>
<div class="col-sm-2 border-end border-secondary">
<input type="text" class="form-control form-control-sm border-0" readonly th:value="${crackdownStatus.processResult.exileDt}">
</div>
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-gainsboro py-2 border-end border-secondary text-center">항공편</label>
<div class="col-sm-2 border-end border-secondary">
<input type="text" class="form-control form-control-sm border-0" readonly th:value="${crackdownStatus.processResult.flight}">
</div>
</div>
<div class="row border border-secondary border-top-0">
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-gainsboro py-2 border-end border-secondary text-center">출입국 담당자</label>
<div class="col-sm-4">
<input type="text" class="form-control form-control-sm border-0" readonly
th:value="|사무소명: ${crackdownStatus.processResult.immigrationOfficeName} 담당자: ${crackdownStatus.processResult.immigrationOfficeOfficerName} 연락처: ${crackdownStatus.processResult.immigrationOfficeOfficerContact}|">
</div>
</div>-->
</div> </div>
<div class="tab-pane fade p-2 mx-2" id="fishingBoatVersionTabPanel" role="tabpanel" aria-labelledby="fishingBoatVersionTab" tabindex="0"> <div class="tab-pane fade p-2 mx-2" id="fishingBoatVersionTabPanel" role="tabpanel" aria-labelledby="fishingBoatVersionTab" tabindex="0">
<div class="row"> <div class="row">
@ -568,26 +563,26 @@
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
<tr class="versionInfoTr" th:each="fishingBoat:${crackdownStatus.fishingBoatVersionList}"> <tr class="versionInfoTr" th:each="versionInfo:${crackdownStatus.crackdownStatusVersionList}">
<input type="hidden" class="fbKey" th:value="${fishingBoat.fbKey}"> <input type="hidden" class="cdsKey" th:value="${versionInfo.cdsKey}">
<input type="hidden" class="versionNo" th:value="${fishingBoat.versionNo}"> <input type="hidden" class="versionNo" th:value="${versionInfo.versionNo}">
<td><input type="checkbox" class="versionInfoChkbox"></td> <td><input type="checkbox" class="versionInfoChkbox"></td>
<td> <td>
<th:block th:each="commonCode:${session.commonCode.get('OG')}"> <th:block th:each="commonCode:${session.commonCode.get('OG')}">
<th:block th:if="${fishingBoat.wrtOrgan eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></th:block> <th:block th:if="${versionInfo.wrtOrgan eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></th:block>
</th:block> </th:block>
<br> <br>
<th:block th:each="commonCode:${session.commonCode.get('JT')}"> <th:block th:each="commonCode:${session.commonCode.get('JT')}">
<th:block th:if="${fishingBoat.wrtUserGrd eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></th:block> <th:block th:if="${versionInfo.wrtUserGrd eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></th:block>
</th:block> </th:block>
<th:block th:text="${fishingBoat.wrtUserNm}"></th:block> <th:block th:text="${versionInfo.wrtUserNm}"></th:block>
</td> </td>
<td th:text="${#temporals.format(fishingBoat.wrtDt, 'yyyy-MM-dd HH:mm')}"></td> <td th:text="${#temporals.format(versionInfo.wrtDt, 'yyyy-MM-dd HH:mm')}"></td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
</div> </div>
<div class="col-8" id="fishingBoardVersionInfoDiv"> <div class="col-8" id="versionInfoDiv">
</div> </div>
</div> </div>

View File

@ -0,0 +1,484 @@
<!DOCTYPE html>
<html lang="ko" xmlns:th="http://www.thymeleaf.org">
<div class="row">
<div class="col-12">
<ul class="nav nav-tabs" id="userTab" role="tablist">
<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>
</li>
<li class="nav-item" role="presentation">
<button class="nav-link" id="fishingBoatTab" data-bs-toggle="tab" data-bs-target="#fishingBoatTabPanel" type="button" role="tab" aria-controls="fishingBoatTabPanel" aria-selected="false">어선정보</button>
</li>
<li class="nav-item" role="presentation">
<button class="nav-link" id="processResultTab" data-bs-toggle="tab" data-bs-target="#processResultTabPanel" type="button" role="tab" aria-controls="processResultTabPanel" aria-selected="false">처리결과 정보</button>
</li>
</ul>
<th:block th:with="crackdownStatus = ${infos.crackdownStatusVersion},
fishingBoat = ${infos.fishingBoatVersion},
processResult = ${infos.processResultVersion},
violationList = ${infos.fishingBoatVersion.violationList}">
<div class="tab-content bg-white border border-top-0">
<div class="tab-pane fade p-2 show active" id="baseInfoTabPanel" role="tabpanel" aria-labelledby="baseInfoTab" tabindex="0">
<div class="row border border-secondary">
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-gainsboro py-2 border-end border-secondary text-center">사건번호</label>
<div class="col-sm-2 border-end border-secondary">
<input type="text" class="form-control form-control-sm border-0" readonly th:value="${crackdownStatus.caseNum}">
</div>
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-gainsboro py-2 border-end border-secondary text-center">선명</label>
<div class="col-sm-2 border-end border-secondary">
<input type="text" class="form-control form-control-sm border-0" readonly th:value="${fishingBoat.boatNameKr}">
</div>
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-gainsboro py-2 border-end border-secondary text-center">위반사항</label>
<div class="col-sm-5">
<div class="row">
<th:block th:each="code:${session.commonCode.get('VT')}">
<th:block th:each="violation:${violationList}">
<div class="col-6" th:if="${code.itemCd eq violation.violation}">
<input type="text" class="form-control form-control-sm border-0" readonly th:value="${code.itemValue}"/>
</div>
</th:block>
</th:block>
</div>
</div>
</div>
<div class="row border border-secondary border-top-0">
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-gainsboro py-2 border-end border-secondary text-center">사건담당경찰서</label>
<div class="col-sm-2 border-end border-secondary">
<th:block th:each="code:${session.commonCode.get('OG')}">
<input type="text" class="form-control form-control-sm border-0" readonly th:if="${code.itemCd eq crackdownStatus.caseAgency}" th:value="${code.itemValue}">
</th:block>
</div>
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-gainsboro py-2 border-end border-secondary text-center fs-11">사건담당경찰관</label>
<div class="col-sm-2 border-end border-secondary">
<input type="text" class="form-control form-control-sm border-0" readonly th:value="${crackdownStatus.casePoliceOfficer}">
</div>
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-gainsboro py-2 border-end border-secondary text-center">단속경찰서</label>
<div class="col-sm-2 border-end border-secondary">
<th:block th:each="code:${session.commonCode.get('CPO')}">
<input type="text" class="form-control form-control-sm border-0" readonly th:if="${code.itemCd eq crackdownStatus.crackdownPolice}" th:value="${code.itemValue}">
</th:block>
</div>
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-gainsboro py-2 border-end border-secondary text-center">단속함정</label>
<div class="col-sm-2">
<th:block th:each="cpoCode:${session.commonCode.get('CPO')}">
<th:block th:each="boatCode:${session.commonCode.get(cpoCode.itemCd)}">
<input type="text" class="form-control form-control-sm border-0" readonly th:if="${boatCode.itemCd eq crackdownStatus.crackdownBoat}" th:value="${boatCode.itemValue}">
</th:block>
</th:block>
</div>
</div>
<div class="row border border-secondary border-top-0">
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-gainsboro py-2 border-end border-secondary text-center">MMSI.NO</label>
<div class="col-sm-2 border-end border-secondary">
<input type="text" class="form-control form-control-sm border-0" readonly th:value="${crackdownStatus.mmsi}">
</div>
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-gainsboro py-2 border-end border-secondary text-center">침범유형</label>
<div class="col-sm-2 border-end border-secondary">
<th:block th:each="code:${session.commonCode.get('IST')}">
<input type="text" class="form-control form-control-sm border-0" readonly th:if="${code.itemCd eq crackdownStatus.invasionType}" th:value="${code.itemValue}">
</th:block>
</div>
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-gainsboro py-2 border-end border-secondary text-center">NLL</label>
<div class="col-sm-2 border-end border-secondary">
<input type="text" class="form-control form-control-sm border-0" readonly th:value="${crackdownStatus.nll eq 'Y'?'O':(crackdownStatus.nll eq 'N'?'X':crackdownStatus.nll)}">
</div>
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-gainsboro py-2 border-end border-secondary text-center">압송/현장조사</label>
<div class="col-sm-2">
<input type="text" class="form-control form-control-sm border-0" readonly th:value="${crackdownStatus.fieldIvsgt eq 'C'?'압송':(crackdownStatus.fieldIvsgt eq 'F'?'현장조사':crackdownStatus.fieldIvsgt)}">
</div>
</div>
<div class="row border border-secondary border-top-0">
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-gainsboro py-2 border-end border-secondary text-center">나포일시</label>
<div class="col-sm-2 border-end border-secondary">
<input type="text" class="form-control form-control-sm border-0" readonly th:value="${#temporals.format(crackdownStatus.napoDt, 'yyyy-MM-dd hh:mm')}">
</div>
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-gainsboro py-2 border-end border-secondary text-center">나포장소</label>
<div class="col-sm-8">
<input type="text" class="form-control form-control-sm border-0" readonly th:value="|${crackdownStatus.napoSeaPointLon} ${crackdownStatus.napoSeaPointLat} ${crackdownStatus.napoSeaPointDetail}|">
</div>
</div>
<th:block th:with="damageFlag=${crackdownStatus.obstrExspdCnt ne 0 ||
crackdownStatus.personDamageCnt ne 0 ||
crackdownStatus.personDamageAmount ne 0 ||
crackdownStatus.personDamageDetail ne null ||
crackdownStatus.materialDamageCnt ne 0 ||
crackdownStatus.materialDamageAmount ne 0 ||
crackdownStatus.materialDamageDetail ne null}">
<th:block th:if="${damageFlag}">
<div class="row border border-secondary border-top-0">
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-gainsboro py-2 border-end border-secondary text-center">특수공무집행방해</label>
<div class="col-sm-11">
<div class="row border-bottom border-secondary">
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-gainsboro py-2 border-end border-secondary text-center">인적피해</label>
<div class="col-sm-11">
<div class="row border-bottom border-secondary">
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-gainsboro py-2 border-end border-secondary text-center">발생건수</label>
<label class="col-sm-2 col-form-label col-form-label-sm py-2 border-end border-secondary text-start">
<th:block th:if="${crackdownStatus.obstrExspdCnt>0}" th:text="|${crackdownStatus.obstrExspdCnt}건|"></th:block>
</label>
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-gainsboro py-2 border-end border-secondary text-center">피해인원</label>
<label class="col-sm-2 col-form-label col-form-label-sm py-2 border-end border-secondary text-start">
<th:block th:if="${crackdownStatus.personDamageCnt>0}" th:text="|${crackdownStatus.personDamageCnt}인|"></th:block>
</label>
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-gainsboro py-2 border-end border-secondary text-center">피해액</label>
<label class="col-sm-2 col-form-label col-form-label-sm py-2 border-end border-secondary text-start">
<th:block th:if="${crackdownStatus.personDamageAmount>0}" th:text="|${crackdownStatus.personDamageAmount}만원|"></th:block>
</label>
</div>
<div class="row">
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-gainsboro py-2 border-end border-secondary text-center">상세내용</label>
<div class="col-sm-11" th:utext="${crackdownStatus.personDamageDetail}">
</div>
</div>
</div>
</div>
<div class="row">
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-gainsboro py-2 border-end border-secondary text-center">물적피해</label>
<div class="col-sm-11">
<div class="row border-bottom border-secondary">
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-gainsboro py-2 border-end border-secondary text-center">발생건수</label>
<label class="col-sm-2 col-form-label col-form-label-sm py-2 border-end border-secondary text-start">
<th:block th:if="${crackdownStatus.materialDamageCnt>0}" th:text="|${crackdownStatus.materialDamageCnt}건|"></th:block>
</label>
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-gainsboro py-2 border-end border-secondary text-center">피해액</label>
<label class="col-sm-2 col-form-label col-form-label-sm py-2 border-end border-secondary text-start">
<th:block th:if="${crackdownStatus.materialDamageAmount>0}" th:text="|${crackdownStatus.materialDamageAmount}만원|"></th:block>
</label>
</div>
<div class="row">
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-gainsboro py-2 border-end border-secondary text-center">상세내용</label>
<div class="col-sm-11" th:utext="${crackdownStatus.materialDamageDetail}">
</div>
</div>
</div>
</div>
</div>
</div>
</th:block>
</th:block>
<th:block th:with="catchFlag=${fishingBoat.catchFishSpecies ne null ||
fishingBoat.catchCnt ne 0}">
<th:block th:if="${catchFlag}">
<div class="row border border-secondary border-top-0">
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-gainsboro py-2 border-end border-secondary text-center">어획물축소기재</label>
<div class="col-sm-11">
<div class="row h-100">
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-gainsboro py-2 border-end border-secondary text-center">어종</label>
<label class="col-sm-2 col-form-label col-form-label-sm py-2 border-end border-secondary text-start"
th:text="${fishingBoat.catchFishSpecies}"></label>
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-gainsboro py-2 border-end border-secondary text-center">수량</label>
<label class="col-sm-2 col-form-label col-form-label-sm py-2 border-end border-secondary text-start">
<th:block th:if="${fishingBoat.catchCnt>0}" th:text="|${fishingBoat.catchCnt}kg|"></th:block>
</label>
</div>
</div>
</div>
</th:block>
</th:block>
</div>
<div class="tab-pane fade p-2" id="fishingBoatTabPanel" role="tabpanel" aria-labelledby="fishingBoatTab" tabindex="0">
<div class="row border border-secondary">
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-gainsboro py-2 border-end border-secondary text-center">선명</label>
<div class="col-sm-5 border-end border-secondary">
<div class="input-group w-auto">
<input type="text" class="form-control form-control-sm border-0" readonly th:value="${fishingBoat.boatNameKr}">
<input type="text" class="form-control form-control-sm border-0" readonly th:value="${fishingBoat.boatNameCn}">
</div>
</div>
</div>
<div class="row border border-secondary border-top-0">
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-gainsboro py-2 border-end border-secondary text-center">허가번호</label>
<div class="col-sm-2 border-end border-secondary">
<input type="text" class="form-control form-control-sm border-0" readonly th:value="${fishingBoat.permitNum}">
</div>
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-gainsboro py-2 border-end border-secondary text-center">국적</label>
<div class="col-sm-2 border-end border-secondary">
<input type="text" class="form-control form-control-sm border-0" readonly th:value="${fishingBoat.nationality}">
</div>
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-gainsboro py-2 border-end border-secondary text-center">승선원</label>
<div class="col-sm-2 border-end border-secondary" th:if="${fishingBoat.sailorCnt>0}">
<input type="text" class="form-control form-control-sm border-0" readonly th:value="|${fishingBoat.sailorCnt}인|">
</div>
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-gainsboro py-2 border-end border-secondary text-center">톤수</label>
<div class="col-sm-2" th:if="${fishingBoat.tonCnt>0}">
<input type="text" class="form-control form-control-sm border-0" readonly th:value="|${fishingBoat.tonCnt}t|">
</div>
</div>
<div class="row border border-secondary border-top-0">
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-gainsboro py-2 border-end border-secondary text-center">선종</label>
<div class="col-sm-2 border-end border-secondary">
<th:block th:each="code:${session.commonCode.get('FT')}">
<input type="text" class="form-control form-control-sm border-0" readonly th:if="${code.itemCd eq fishingBoat.fisheryType}" th:value="${code.itemValue}">
</th:block>
</div>
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-gainsboro py-2 border-end border-secondary text-center">선질</label>
<div class="col-sm-2 border-end border-secondary">
<th:block th:each="code:${session.commonCode.get('BM')}">
<input type="text" class="form-control form-control-sm border-0" readonly th:if="${code.itemCd eq fishingBoat.boatMaterial}" th:value="${code.itemValue}">
</th:block>
</div>
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-gainsboro py-2 border-end border-secondary text-center">선적지</label>
<div class="col-sm-2 border-end border-secondary">
<div class="input-group w-auto">
<input type="text" class="form-control form-control-sm border-0" readonly th:value="${fishingBoat.boatNnySung}">
<input type="text" class="form-control form-control-sm border-0" readonly th:value="${fishingBoat.boatNnySi}">
</div>
</div>
</div>
<div class="row border border-secondary border-top-0">
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-gainsboro py-2 border-end border-secondary text-center">범칙물</label>
<label class="col-sm-2 col-form-label col-form-label-sm py-2 border-end border-secondary text-start">
<th:block th:if="${fishingBoat.offenseType ne null}" th:text="${fishingBoat.offenseType}"></th:block>
<th:block th:if="${fishingBoat.offenseWeight>0}" th:text="|${fishingBoat.offenseWeight}kg|"></th:block>
</label>
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-gainsboro py-2 border-end border-secondary text-center">범칙물 폐기량</label>
<label class="col-sm-2 col-form-label col-form-label-sm py-2 border-end border-secondary text-start">
<th:block th:if="${fishingBoat.offenseIllegalWasteQuantity>0}" th:text="|${fishingBoat.offenseIllegalWasteQuantity}kg|"></th:block>
</label>
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-gainsboro py-2 border-end border-secondary text-center">범칙물 위판량</label>
<label class="col-sm-2 col-form-label col-form-label-sm py-2 border-end border-secondary text-start">
<th:block th:if="${fishingBoat.offenseQuantity>0}" th:text="|${fishingBoat.offenseQuantity}kg|"></th:block>
</label>
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-gainsboro py-2 border-end border-secondary text-center fs-11">범칙물 위판금액</label>
<label class="col-sm-2 col-form-label col-form-label-sm py-2 border-end border-secondary text-start">
<th:block th:if="${fishingBoat.offenseAmount>0}" th:text="|${fishingBoat.offenseAmount}만원|"></th:block>
</label>
</div>
<div class="row border border-secondary border-top-0">
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-gainsboro py-2 border-end border-secondary text-center">담보금 미납액</label>
<label class="col-sm-2 col-form-label col-form-label-sm py-2 border-end border-secondary text-start">
<th:block th:if="${fishingBoat.damboUnpaidAmount>0}" th:text="|${fishingBoat.damboUnpaidAmount}만원|"></th:block>
</label>
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-gainsboro py-2 border-end border-secondary text-center">담보금 납부액</label>
<label class="col-sm-2 col-form-label col-form-label-sm py-2 border-end border-secondary text-start">
<th:block th:if="${fishingBoat.damboPayment>0}" th:text="|${fishingBoat.damboPayment}만원|"></th:block>
</label>
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-gainsboro py-2 border-end border-secondary text-center fs-11">담보금 납부일시</label>
<div class="col-sm-2">
<input type="text" class="form-control form-control-sm border-0" readonly th:value="${fishingBoat.paymentPaymentDt}">
</div>
</div>
<div class="row border border-secondary border-top-0">
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-gainsboro py-2 border-end border-secondary text-center">압수어구</label>
<label class="col-sm-11 col-form-label col-form-label-sm py-2 text-start">
<th:block th:if="${!#strings.isEmpty(fishingBoat.confiscationFrame)}" th:text="|틀: ${fishingBoat.confiscationFrame}|"></th:block>
<th:block th:if="${!#strings.isEmpty(fishingBoat.confiscationWidth)}" th:text="|폭: ${fishingBoat.confiscationWidth}|"></th:block>
<th:block th:if="${!#strings.isEmpty(fishingBoat.confiscationJo)}" th:text="|조: ${fishingBoat.confiscationJo}|"></th:block>
<th:block th:if="${!#strings.isEmpty(fishingBoat.confiscationGae)}" th:text="|개: ${fishingBoat.confiscationGae}|"></th:block>
<th:block th:if="${!#strings.isEmpty(fishingBoat.confiscationEtc)}" th:text="|기타: ${fishingBoat.confiscationEtc}|"></th:block>
</label>
</div>
</div>
<div class="tab-pane fade p-2" id="processResultTabPanel" role="tabpanel" aria-labelledby="processResultTab" tabindex="0">
<div class="row border border-secondary">
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-gainsboro py-2 border-end border-secondary text-center">처리현황</label>
<div class="col-sm-2 border-end border-secondary">
<th:block th:each="code:${session.commonCode.get('PR')}">
<input type="text" class="form-control form-control-sm border-0" readonly th:if="${code.itemCd eq processResult.processStatus}" th:value="${code.itemValue}">
</th:block>
</div>
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-gainsboro py-2 border-end border-secondary text-center">수사중지 여부</label>
<div class="col-sm-2 border-end border-secondary">
<input type="text" class="form-control form-control-sm border-0" readonly th:value="${processResult.isIvsgtStop eq 'Y'?'중지':(processResult.isIvsgtStop eq 'N'?'수사중':processResult.isIvsgtStop)}">
</div>
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-gainsboro py-2 border-end border-secondary text-center">선고법원</label>
<label class="col-sm-2 col-form-label col-form-label-sm py-2 border-end border-secondary text-start" th:text="${processResult.sentencingCourt}"></label>
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-gainsboro py-2 border-end border-secondary text-center">선고내용</label>
<label class="col-sm-2 col-form-label col-form-label-sm py-2 text-start" th:text="${processResult.sentencingDetail}"></label>
</div>
<div class="row border border-secondary border-top-0">
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-gainsboro py-2 border-end border-secondary text-center">압송소요시간</label>
<div class="col-sm-2 border-end border-secondary">
<input type="text" class="form-control form-control-sm border-0" readonly th:value="${processResult.pressurizedTimeTaken}">
</div>
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-gainsboro py-2 border-end border-secondary text-center">압송거리</label>
<label class="col-sm-2 col-form-label col-form-label-sm py-2 border-end border-secondary text-start">
<th:block th:if="${!#strings.isEmpty(crackdownStatus.distance)}" th:text="|${crackdownStatus.distance}해리|"></th:block>
</label>
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-gainsboro py-2 border-end border-secondary text-center fs-10">영장청구 소요시간</label>
<div class="col-sm-2 border-end border-secondary">
<input type="text" class="form-control form-control-sm border-0" readonly th:value="${processResult.warrantReqTakeTime}">
</div>
</div>
<div class="row border border-secondary border-top-0">
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-gainsboro py-2 border-end border-secondary text-center">나포일시</label>
<div class="col-sm-2 border-end border-secondary">
<input type="text" class="form-control form-control-sm border-0" id="napoDt" readonly th:value="${#temporals.format(crackdownStatus.napoDt, 'yyyy-MM-dd hh:mm')}">
</div>
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-gainsboro py-2 border-end border-secondary text-center">석방일시</label>
<div class="col-sm-2 border-end border-secondary">
<input type="text" class="form-control form-control-sm border-0" id="releaseDt" readonly th:value="${#temporals.format(processResult.releaseDt, 'yyyy-MM-dd hh:mm')}">
</div>
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-gainsboro py-2 border-end border-secondary text-center">소요시간</label>
<div class="col-sm-2 border-end border-secondary">
<input type="text" class="form-control form-control-sm border-0" id="releaseToNapo" readonly>
</div>
</div>
<div class="row border border-secondary border-top-0">
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-gainsboro py-2 border-end border-secondary text-center">위탁시작일</label>
<div class="col-sm-2 border-end border-secondary">
<input type="text" class="form-control form-control-sm border-0" readonly th:value="${processResult.consignmentStartDt}">
</div>
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-gainsboro py-2 border-end border-secondary text-center">위탁종료일</label>
<div class="col-sm-2 border-end border-secondary">
<input type="text" class="form-control form-control-sm border-0" readonly th:value="${processResult.consignmentEndDt}">
</div>
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-gainsboro py-2 border-end border-secondary text-center">퇴거일</label>
<div class="col-sm-2 border-end border-secondary">
<input type="text" class="form-control form-control-sm border-0" readonly th:value="${processResult.evictionDt}">
</div>
</div>
<div class="row border border-secondary border-top-0">
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-gainsboro py-2 border-end border-secondary text-center">직접인계일</label>
<div class="col-sm-2 border-end border-secondary">
<input type="text" class="form-control form-control-sm border-0" readonly th:value="${processResult.directHandoverDt}">
</div>
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-gainsboro py-2 border-end border-secondary text-center">인계 해점</label>
<div class="col-sm-2 border-end border-secondary">
<div class="input-group w-auto">
<input type="text" class="form-control form-control-sm border-0" readonly th:value="${processResult.handoverSeaPointLon}">
<input type="text" class="form-control form-control-sm border-0" readonly th:value="${processResult.handoverSeaPointLat}">
</div>
</div>
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-gainsboro py-2 border-end border-secondary text-center">인계 함정</label>
<div class="col-sm-2 border-end border-secondary">
<input type="text" class="form-control form-control-sm border-0" readonly th:value="${processResult.handoverBoat}">
</div>
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-gainsboro py-2 border-end border-secondary text-center">중측 인수함정</label>
<div class="col-sm-2">
<input type="text" class="form-control form-control-sm border-0" readonly th:value="${processResult.middleTakeoverBoat}">
</div>
</div>
<div class="row border border-secondary border-top-0">
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-gainsboro py-2 border-end border-secondary text-center">몰수확정일</label>
<div class="col-sm-2 border-end border-secondary">
<input type="text" class="form-control form-control-sm border-0" readonly th:value="${processResult.confiscationDt}">
</div>
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-gainsboro py-2 border-end border-secondary text-center">폐선일</label>
<div class="col-sm-2 border-end border-secondary">
<input type="text" class="form-control form-control-sm border-0" readonly th:value="${processResult.boatDisposalDt}">
</div>
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-gainsboro py-2 border-end border-secondary text-center">폐선종류</label>
<div class="col-sm-2 border-end border-secondary">
<th:block th:each="code:${session.commonCode.get('BDT')}">
<input type="text" class="form-control form-control-sm border-0" readonly th:if="${code.itemCd eq processResult.boatDisposalType}" th:value="${code.itemValue}">
</th:block>
</div>
</div>
<div class="row border border-secondary border-top-0">
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-gainsboro py-2 border-end border-secondary text-center">침몰일</label>
<div class="col-sm-2 border-end border-secondary">
<input type="text" class="form-control form-control-sm border-0" readonly th:value="${processResult.exileDt}">
</div>
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-gainsboro py-2 border-end border-secondary text-center">환부일</label>
<div class="col-sm-2 border-end border-secondary">
<input type="text" class="form-control form-control-sm border-0" readonly th:value="${processResult.returnDt}">
</div>
</div>
</div>
</div>
</th:block>
</div>
</div>
<!--<div class="row border border-secondary">
<label class="col-sm-2 col-form-label col-form-label-sm py-2 border-end border-bottom border-secondary text-center">선명</label>
<div class="col-sm-10 border-bottom border-secondary">
<div class="input-group w-auto">
<input type="text" class="form-control form-control-sm border-0" readonly th:value="${fishingBoat.boatNameKr}">
<input type="text" class="form-control form-control-sm border-0" readonly th:value="${fishingBoat.boatNameCn}">
</div>
</div>
<label class="col-sm-2 col-form-label col-form-label-sm py-2 border-end border-secondary text-center">위반사항</label>
<div class="col-sm-10">
<div class="row">
<th:block th:each="code:${vtList}">
<th:block th:each="violation:${fishingBoat.violationList}">
<div class="col-6" th:if="${code.itemCd eq violation.violation}">
<input type="text" class="form-control form-control-sm border-0" readonly th:value="${code.itemValue}"/>
</div>
</th:block>
</th:block>
</div>
</div>
</div>
<div class="row border border-secondary border-top-0">
<label class="col-sm-2 col-form-label col-form-label-sm py-2 border-end border-bottom border-secondary text-center">허가번호</label>
<div class="col-sm-4 border-end border-bottom border-secondary">
<input type="text" class="form-control form-control-sm border-0" readonly th:value="${fishingBoat.permitNum}">
</div>
<label class="col-sm-2 col-form-label col-form-label-sm py-2 border-end border-bottom border-secondary text-center">국적</label>
<div class="col-sm-4 border-bottom border-secondary">
<input type="text" class="form-control form-control-sm border-0" readonly th:value="${fishingBoat.nationality}">
</div>
<label class="col-sm-2 col-form-label col-form-label-sm py-2 border-end border-secondary text-center">승선원</label>
<div class="col-sm-4 border-end border-secondary">
<input type="text" class="form-control form-control-sm border-0" readonly th:value="|${fishingBoat.sailorCnt}인|">
</div>
<label class="col-sm-2 col-form-label col-form-label-sm py-2 border-end border-secondary text-center">톤수</label>
<div class="col-sm-4">
<input type="text" class="form-control form-control-sm border-0" readonly th:value="|${fishingBoat.tonCnt}t|">
</div>
</div>
<div class="row border border-secondary border-top-0">
<label class="col-sm-2 col-form-label col-form-label-sm py-2 border-end border-bottom border-secondary text-center">선종</label>
<div class="col-sm-4 border-end border-bottom border-secondary">
<th:block th:each="code:${ftList}">
<input type="text" class="form-control form-control-sm border-0" readonly th:if="${code.itemCd eq fishingBoat.fisheryType}" th:value="${code.itemValue}">
</th:block>
</div>
<label class="col-sm-2 col-form-label col-form-label-sm py-2 border-end border-bottom border-secondary text-center">선질</label>
<div class="col-sm-4 border-bottom border-secondary">
<th:block th:each="code:${bmList}">
<input type="text" class="form-control form-control-sm border-0" readonly th:if="${code.itemCd eq fishingBoat.boatMaterial}" th:value="${code.itemValue}">
</th:block>
</div>
<label class="col-sm-2 col-form-label col-form-label-sm py-2 border-end border-secondary text-center">선적지</label>
<div class="col-sm-4 border-end border-secondary">
<div class="input-group w-auto">
<input type="text" class="form-control form-control-sm border-0" readonly th:value="${fishingBoat.boatNnySung}">
<input type="text" class="form-control form-control-sm border-0" readonly th:value="${fishingBoat.boatNnySi}">
</div>
</div>
</div>
<div class="row border border-secondary border-top-0">
<label class="col-sm-2 col-form-label col-form-label-sm py-2 border-end border-bottom border-secondary text-center">범칙물</label>
<div class="col-sm-6 border-end border-bottom border-secondary">
<input type="text" class="form-control form-control-sm border-0" readonly
th:value="|${fishingBoat.offenseType} ${fishingBoat.offenseWeight}kg|">
</div>
<div class="col-sm-4 border-bottom border-secondary"></div>
<label class="col-sm-2 col-form-label col-form-label-sm py-2 border-end border-secondary text-center">범칙물 위판량</label>
<div class="col-sm-4 border-end border-secondary">
<input type="text" class="form-control form-control-sm border-0" readonly th:value="|${fishingBoat.offenseQuantity}kg|">
</div>
<label class="col-sm-2 col-form-label col-form-label-sm py-2 border-end border-secondary text-center">범칙물 위판금액</label>
<div class="col-sm-4">
<input type="text" class="form-control form-control-sm border-0" readonly th:value="|${fishingBoat.offenseAmount}원|">
</div>
</div>
<div class="row border border-secondary border-top-0">
<label class="col-sm-2 col-form-label col-form-label-sm py-2 border-end border-bottom border-secondary text-center">범칙물 폐기량</label>
<div class="col-sm-4 border-end border-bottom border-secondary">
<input type="text" class="form-control form-control-sm border-0" readonly th:value="|${fishingBoat.offenseIllegalWasteQuantity}kg|">
</div>
<label class="col-sm-2 col-form-label col-form-label-sm py-2 border-end border-bottom border-secondary text-center">담보금 미납액</label>
<div class="col-sm-4 border-bottom border-secondary">
<input type="text" class="form-control form-control-sm border-0" readonly th:value="|${fishingBoat.damboUnpaidAmount}원|">
</div>
<label class="col-sm-2 col-form-label col-form-label-sm py-2 border-end border-secondary text-center">담보금 납부액</label>
<div class="col-sm-4 border-end border-secondary">
<input type="text" class="form-control form-control-sm border-0" readonly th:value="|${fishingBoat.damboPayment}원|">
</div>
<label class="col-sm-2 col-form-label col-form-label-sm py-2 border-end border-secondary text-center">담보금 납부일시</label>
<div class="col-sm-4">
<input type="text" class="form-control form-control-sm border-0" readonly th:value="${#temporals.format(fishingBoat.paymentPaymentDt, 'yyyy-MM-dd HH:mm')}">
</div>
</div>
<div class="row border border-secondary border-top-0">
<label class="col-sm-2 col-form-label col-form-label-sm py-2 border-end border-secondary text-center">압수어구</label>
<div class="col-sm-10">
<input type="text" class="form-control form-control-sm border-0" readonly
th:value="|틀: ${fishingBoat.confiscationFrame} 폭: ${fishingBoat.confiscationWidth} 조: ${fishingBoat.confiscationJo} 개: ${fishingBoat.confiscationGae} 기타: ${fishingBoat.confiscationEtc}|">
</div>
</div>-->
</html>