불법조업외국어선 작업중.

master
최강석 2023-05-23 18:15:14 +09:00
parent 372ede5aad
commit b2570702ab
67 changed files with 1146 additions and 354 deletions

View File

@ -2,8 +2,8 @@ package com.dbnt.faisp.config;
import com.dbnt.faisp.main.counterIntelligence.service.CounterIntelligenceService; import com.dbnt.faisp.main.counterIntelligence.service.CounterIntelligenceService;
import com.dbnt.faisp.main.faRpt.service.FaRptService; import com.dbnt.faisp.main.faRpt.service.FaRptService;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.service.FishingBoatService; import com.dbnt.faisp.main.faStatistics.unlawfulFishing.service.FishingBoatService;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.service.SailorService; import com.dbnt.faisp.main.faStatistics.unlawfulFishing.service.SailorService;
import com.dbnt.faisp.main.fpiMgt.affair.service.AffairService; import com.dbnt.faisp.main.fpiMgt.affair.service.AffairService;
import com.dbnt.faisp.main.fpiMgt.affairPlan.service.PlanService; import com.dbnt.faisp.main.fpiMgt.affairPlan.service.PlanService;
import com.dbnt.faisp.main.fpiMgt.affairResult.service.ResultService; import com.dbnt.faisp.main.fpiMgt.affairResult.service.ResultService;
@ -26,7 +26,6 @@ import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.io.*; import java.io.*;
import java.net.URLEncoder;
import java.nio.file.Files; import java.nio.file.Files;
import java.nio.file.Path; import java.nio.file.Path;
import java.nio.file.Paths; import java.nio.file.Paths;

View File

@ -1,16 +1,10 @@
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.UnlawfulFishingParam; import com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.UnlawfulFishingParam;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.crackdownStatus.CSStatistics; import com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.crackdownStatus.CSStatistics;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.crackdownStatus.CrackdownStatus; import com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.crackdownStatus.CrackdownStatusDTO;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.crackdownStatus.CrackdownStatusDTO; import com.dbnt.faisp.main.faStatistics.unlawfulFishing.service.FishingBoatService;
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.FishingBoatService;
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;

View File

@ -139,6 +139,7 @@ public class SecurityConfig{
"/affairStatistics/**", "/affairStatistics/**",
"/affairResult/**", "/affairResult/**",
"/faStatistics/**", "/faStatistics/**",
"/unlawfulFishing/**",
"/translator/**", "/translator/**",
"/police/**", "/police/**",
"/sri/**", "/sri/**",

View File

@ -1,41 +0,0 @@
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,27 +0,0 @@
package com.dbnt.faisp.main.faStatistics.crackdownsStatus.mapper;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.UnlawfulFishingParam;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.crackdownStatus.CrackdownStatus;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.crackdownStatus.CrackdownStatusDTO;
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.FishingBoatVersion;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.processResult.ProcessResultVersion;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
@Mapper
public interface CrackdownStatusMapper {
List<CrackdownStatusDTO> selectCrackdownStatusList(UnlawfulFishingParam params);
Integer selectCrackdownStatusListCnt(UnlawfulFishingParam params);
List<CrackdownStatus> selectFishingBoatList(UnlawfulFishingParam params);
Integer selectFishingBoatListCnt(UnlawfulFishingParam params);
List<Integer> selectFishingBoatYearParam(UnlawfulFishingParam params);
List<CrackdownStatusVersion> selectCrackdownStatusVersionList(Integer cdsKey);
List<FishingBoatVersion> selectFishingBoatVersionList(Integer fbKey);
List<ProcessResultVersion> selectProcessResultVersionList(Integer prKey);
}

View File

@ -1,26 +1,18 @@
package com.dbnt.faisp.main.faStatistics.crackdownsStatus; package com.dbnt.faisp.main.faStatistics.unlawfulFishing;
import com.dbnt.faisp.main.authMgt.service.AuthMgtService; import com.dbnt.faisp.main.authMgt.service.AuthMgtService;
import com.dbnt.faisp.main.codeMgt.service.CodeMgtService; import com.dbnt.faisp.main.codeMgt.service.CodeMgtService;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.asfCov.AsfCov; import com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.asfCov.AsfCov;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.crackdownStatus.CrackdownStatus; import com.dbnt.faisp.main.faStatistics.unlawfulFishing.service.AsfCovService;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.crackdownStatus.CrackdownStatusVersion;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.fishingBoat.FishingBoat;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.processResult.ProcessResult;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.service.AsfCovService;
import com.dbnt.faisp.main.userInfo.model.UserInfo; import com.dbnt.faisp.main.userInfo.model.UserInfo;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import oracle.jdbc.proxy.annotation.Post;
import org.springframework.security.core.annotation.AuthenticationPrincipal; import org.springframework.security.core.annotation.AuthenticationPrincipal;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.ModelAndView;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.List;
@RestController @RestController

View File

@ -1,13 +1,12 @@
package com.dbnt.faisp.main.faStatistics.crackdownsStatus; package com.dbnt.faisp.main.faStatistics.unlawfulFishing;
import com.dbnt.faisp.main.authMgt.service.AuthMgtService; import com.dbnt.faisp.main.authMgt.service.AuthMgtService;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.crackdownStatus.CrackdownStatus; import com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.crackdownStatus.CrackdownStatus;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.crackdownStatus.CrackdownStatusDTO; import com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.fishingBoat.FishingBoat;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.fishingBoat.FishingBoat; import com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.crackdownStatus.CrackdownStatusVersion;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.crackdownStatus.CrackdownStatusVersion; import com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.processResult.ProcessResult;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.processResult.ProcessResult; import com.dbnt.faisp.main.faStatistics.unlawfulFishing.repository.*;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.repository.*; import com.dbnt.faisp.main.faStatistics.unlawfulFishing.service.CrackdownStatusService;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.service.CrackdownStatusService;
import com.dbnt.faisp.main.userInfo.model.UserInfo; import com.dbnt.faisp.main.userInfo.model.UserInfo;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.security.core.annotation.AuthenticationPrincipal; import org.springframework.security.core.annotation.AuthenticationPrincipal;

View File

@ -1,16 +1,16 @@
package com.dbnt.faisp.main.faStatistics.crackdownsStatus; package com.dbnt.faisp.main.faStatistics.unlawfulFishing;
import com.dbnt.faisp.main.authMgt.service.AuthMgtService; import com.dbnt.faisp.main.authMgt.service.AuthMgtService;
import com.dbnt.faisp.main.codeMgt.service.CodeMgtService; import com.dbnt.faisp.main.codeMgt.service.CodeMgtService;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.UnlawfulFishingParam; import com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.UnlawfulFishingParam;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.crackdownStatus.CSStatistics; import com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.crackdownStatus.CSStatistics;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.crackdownStatus.CrackdownStatus; import com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.crackdownStatus.CrackdownStatus;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.crackdownStatus.CrackdownStatusDTO; import com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.crackdownStatus.CrackdownStatusDTO;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.fishingBoat.FishingBoat; import com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.fishingBoat.FishingBoat;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.fishingBoat.FishingBoatVersion; import com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.fishingBoat.FishingBoatVersion;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.processResult.ProcessResult; import com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.processResult.ProcessResult;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.service.FishingBoatService; import com.dbnt.faisp.main.faStatistics.unlawfulFishing.service.FishingBoatService;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.service.UnlawfulFishingService; import com.dbnt.faisp.main.faStatistics.unlawfulFishing.service.UnlawfulFishingService;
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;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;

View File

@ -1,12 +1,12 @@
package com.dbnt.faisp.main.faStatistics.crackdownsStatus; package com.dbnt.faisp.main.faStatistics.unlawfulFishing;
import com.dbnt.faisp.main.authMgt.service.AuthMgtService; import com.dbnt.faisp.main.authMgt.service.AuthMgtService;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.crackdownStatus.CrackdownStatus; import com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.crackdownStatus.CrackdownStatus;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.fishingBoat.FishingBoat; import com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.fishingBoat.FishingBoat;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.processResult.ProcessResult; import com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.processResult.ProcessResult;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.processResult.ProcessResultVersion; import com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.processResult.ProcessResultVersion;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.repository.*; import com.dbnt.faisp.main.faStatistics.unlawfulFishing.repository.*;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.service.ProcessResultService; import com.dbnt.faisp.main.faStatistics.unlawfulFishing.service.ProcessResultService;
import com.dbnt.faisp.main.userInfo.model.UserInfo; import com.dbnt.faisp.main.userInfo.model.UserInfo;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.security.core.annotation.AuthenticationPrincipal; import org.springframework.security.core.annotation.AuthenticationPrincipal;

View File

@ -1,12 +1,12 @@
package com.dbnt.faisp.main.faStatistics.crackdownsStatus; package com.dbnt.faisp.main.faStatistics.unlawfulFishing;
import com.dbnt.faisp.main.authMgt.service.AuthMgtService; import com.dbnt.faisp.main.authMgt.service.AuthMgtService;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.crackdownStatus.CrackdownStatus; import com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.crackdownStatus.CrackdownStatus;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.fishingBoat.FishingBoat; import com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.fishingBoat.FishingBoat;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.sailor.Sailor; import com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.sailor.Sailor;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.sailor.SailorVersion; import com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.sailor.SailorVersion;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.repository.*; import com.dbnt.faisp.main.faStatistics.unlawfulFishing.repository.*;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.service.SailorService; import com.dbnt.faisp.main.faStatistics.unlawfulFishing.service.SailorService;
import com.dbnt.faisp.main.userInfo.model.UserInfo; import com.dbnt.faisp.main.userInfo.model.UserInfo;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.security.core.annotation.AuthenticationPrincipal; import org.springframework.security.core.annotation.AuthenticationPrincipal;

View File

@ -1,51 +0,0 @@
package com.dbnt.faisp.main.faStatistics.unlawfulFishing;
import com.dbnt.faisp.main.authMgt.service.AuthMgtService;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.UnlawfulFishingParam;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.crackdownStatus.CSStatistics;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.crackdownStatus.CrackdownStatusDTO;
import com.dbnt.faisp.main.faStatistics.unlawfulFishing.service.UnlawfulFishing2Service;
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.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.servlet.ModelAndView;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
@RestController
@RequiredArgsConstructor
@RequestMapping("/unlawfulFishing")
public class UnlawfulFishing2Controller {
private final UnlawfulFishing2Service unlawfulFishing2Service;
private final AuthMgtService authMgtService;
@GetMapping("/crackdownStatus")
public ModelAndView crackdownStatusPage(@AuthenticationPrincipal UserInfo loginUser, UnlawfulFishingParam params){
ModelAndView mav = new ModelAndView("faStatistics/unlawfulFishing/crackdownStatus/crackdownStatusPage");
//메뉴권한 확인
String accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/faStatistics/crackdownStatus").get(0).getAccessAuth();
mav.addObject("accessAuth", accessAuth);
if(params.getYear()==null){
params.setYear(LocalDateTime.now().getYear());
}
List<Integer> yearList = unlawfulFishing2Service.selectFishingBoatYearParam();
if(!yearList.contains(params.getYear())){
yearList.add(params.getYear());
}
List<CrackdownStatusDTO> csDTOList = new ArrayList<CrackdownStatusDTO>();
CSStatistics statistics = new CSStatistics();
mav.addObject("statistics", statistics);
mav.addObject("crackdownStatusList", csDTOList);
mav.addObject("yearList", yearList);
mav.addObject("searchParams", params);
return mav;
}
}

View File

@ -0,0 +1,77 @@
package com.dbnt.faisp.main.faStatistics.unlawfulFishing;
import com.dbnt.faisp.main.authMgt.service.AuthMgtService;
import com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.UnlawfulFishingParam;
import com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.crackdownStatus.*;
import com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.fishingBoat.FishingBoat;
import com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.processResult.ProcessResult;
import com.dbnt.faisp.main.faStatistics.unlawfulFishing.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.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.servlet.ModelAndView;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
@RestController
@RequiredArgsConstructor
@RequestMapping("/unlawfulFishing")
public class UnlawfulFishingController {
private final AuthMgtService authMgtService;
private final UnlawfulFishingService unlawfulFishingService;
@GetMapping("/crackdownStatus")
public ModelAndView crackdownStatusPage(@AuthenticationPrincipal UserInfo loginUser, UnlawfulFishingParam params){
ModelAndView mav = new ModelAndView("faStatistics/unlawfulFishing/crackdownStatus/crackdownStatusPage");
//메뉴권한 확인
String accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/unlawfulFishing/crackdownStatus").get(0).getAccessAuth();
mav.addObject("accessAuth", accessAuth);
if(params.getYear()==null){
params.setYear(LocalDateTime.now().getYear());
}
List<Integer> yearList = unlawfulFishingService.selectFishingBoatYearParam();
if(!yearList.contains(params.getYear())){
yearList.add(params.getYear());
}
List<CrackdownStatusDTO> csDTOList = new ArrayList<>();
CSStatistics statistics = new CSStatistics();
mav.addObject("statistics", statistics);
mav.addObject("crackdownStatusList", csDTOList);
mav.addObject("yearList", yearList);
mav.addObject("searchParams", params);
return mav;
}
@GetMapping("/csEditModal")
public ModelAndView crackdownStatusEditModal(@AuthenticationPrincipal UserInfo loginUser, CrackdownStatus crackdownStatus){
ModelAndView mav = new ModelAndView("faStatistics/unlawfulFishing/crackdownStatus/csEditModal");
if(crackdownStatus.getCdsKey()!=null){
crackdownStatus = unlawfulFishingService.selectCrackdownStatus(crackdownStatus.getCdsKey());
}else{
crackdownStatus.setWrtOrgan(loginUser.getOgCd());
crackdownStatus.setWrtPart(loginUser.getOfcCd());
crackdownStatus.setWrtUserGrd(loginUser.getGroupCd());
crackdownStatus.setWrtOrgan(loginUser.getOgCd());
crackdownStatus.setWrtUserNm(loginUser.getUserNm());
crackdownStatus.setWrtDt(LocalDateTime.now());
}
mav.addObject("crackdownStatus", crackdownStatus);
return mav;
}
@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,6 +1,6 @@
package com.dbnt.faisp.main.faStatistics.crackdownsStatus.mapper; package com.dbnt.faisp.main.faStatistics.unlawfulFishing.mapper;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.asfCov.AsfCov; import com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.asfCov.AsfCov;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;

View File

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

View File

@ -1,6 +1,6 @@
package com.dbnt.faisp.main.faStatistics.crackdownsStatus.mapper; package com.dbnt.faisp.main.faStatistics.unlawfulFishing.mapper;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.processResult.ProcessResult; import com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.processResult.ProcessResult;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import java.util.List; import java.util.List;

View File

@ -1,6 +1,6 @@
package com.dbnt.faisp.main.faStatistics.crackdownsStatus.mapper; package com.dbnt.faisp.main.faStatistics.unlawfulFishing.mapper;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.sailor.Sailor; import com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.sailor.Sailor;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import java.util.List; import java.util.List;

View File

@ -1,7 +1,5 @@
package com.dbnt.faisp.main.faStatistics.unlawfulFishing.mapper; package com.dbnt.faisp.main.faStatistics.unlawfulFishing.mapper;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.UnlawfulFishingParam;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.asfCov.AsfCov;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import java.util.List; import java.util.List;

View File

@ -1,4 +1,4 @@
package com.dbnt.faisp.main.faStatistics.crackdownsStatus.model; package com.dbnt.faisp.main.faStatistics.unlawfulFishing.model;
import com.dbnt.faisp.config.BaseModel; import com.dbnt.faisp.config.BaseModel;

View File

@ -1,11 +1,6 @@
package com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.asfCov; package com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.asfCov;
import com.dbnt.faisp.config.BaseModel; import com.dbnt.faisp.config.BaseModel;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.crackdownStatus.CrackdownStatus;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.crackdownStatus.CrackdownStatusBaseEntity;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.fishingBoat.FishingBoat;
import com.dbnt.faisp.main.ivsgtMgt.majorStatus.model.MajorFile;
import io.micrometer.core.annotation.Counted;
import lombok.*; import lombok.*;
import org.hibernate.annotations.DynamicInsert; import org.hibernate.annotations.DynamicInsert;
import org.hibernate.annotations.DynamicUpdate; import org.hibernate.annotations.DynamicUpdate;

View File

@ -1,13 +1,9 @@
package com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.crackdownStatus; package com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.crackdownStatus;
import com.dbnt.faisp.config.BaseModel; import com.dbnt.faisp.config.BaseModel;
import lombok.Getter; import lombok.Getter;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import lombok.Setter; import lombok.Setter;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDate;
import java.time.LocalDateTime;
@Getter @Getter
@Setter @Setter

View File

@ -1,10 +1,9 @@
package com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.crackdownStatus; package com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.crackdownStatus;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.fishingBoat.FishingBoat; import com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.fishingBoat.FishingBoat;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.fishingBoat.FishingBoatVersion; import com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.fishingBoat.Violation;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.fishingBoat.Violation; import com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.processResult.ProcessResult;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.processResult.ProcessResult; import com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.sailor.Sailor;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.sailor.Sailor;
import lombok.Getter; import lombok.Getter;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import lombok.Setter; import lombok.Setter;
@ -15,7 +14,6 @@ import org.springframework.web.multipart.MultipartFile;
import javax.persistence.*; import javax.persistence.*;
import java.time.LocalDate; import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List; import java.util.List;
@Getter @Getter

View File

@ -1,4 +1,4 @@
package com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.crackdownStatus; package com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.crackdownStatus;
import com.dbnt.faisp.config.BaseModel; import com.dbnt.faisp.config.BaseModel;
import lombok.Getter; import lombok.Getter;

View File

@ -1,4 +1,4 @@
package com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.crackdownStatus; package com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.crackdownStatus;
import com.dbnt.faisp.config.BaseModel; import com.dbnt.faisp.config.BaseModel;
import lombok.Getter; import lombok.Getter;
@ -6,8 +6,6 @@ import lombok.NoArgsConstructor;
import lombok.Setter; import lombok.Setter;
import org.springframework.format.annotation.DateTimeFormat; import org.springframework.format.annotation.DateTimeFormat;
import javax.persistence.Column;
import javax.persistence.MappedSuperclass;
import java.time.LocalDate; import java.time.LocalDate;
import java.time.LocalDateTime; import java.time.LocalDateTime;

View File

@ -1,4 +1,4 @@
package com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.crackdownStatus; package com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.crackdownStatus;
import lombok.*; import lombok.*;
import org.hibernate.annotations.DynamicInsert; import org.hibernate.annotations.DynamicInsert;

View File

@ -1,7 +1,7 @@
package com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.crackdownStatus; package com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.crackdownStatus;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.fishingBoat.FishingBoatVersion; import com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.fishingBoat.FishingBoatVersion;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.processResult.ProcessResultVersion; import com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.processResult.ProcessResultVersion;
import lombok.Getter; import lombok.Getter;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import lombok.Setter; import lombok.Setter;

View File

@ -1,14 +1,12 @@
package com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.fishingBoat; package com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.fishingBoat;
import lombok.Getter; import lombok.Getter;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import lombok.Setter; import lombok.Setter;
import org.hibernate.annotations.DynamicInsert; import org.hibernate.annotations.DynamicInsert;
import org.hibernate.annotations.DynamicUpdate; import org.hibernate.annotations.DynamicUpdate;
import org.springframework.web.multipart.MultipartFile;
import javax.persistence.*; import javax.persistence.*;
import java.util.List;
@Getter @Getter
@Setter @Setter

View File

@ -1,4 +1,4 @@
package com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.fishingBoat; package com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.fishingBoat;
import com.dbnt.faisp.config.BaseModel; import com.dbnt.faisp.config.BaseModel;
import lombok.Getter; import lombok.Getter;

View File

@ -1,4 +1,4 @@
package com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.fishingBoat; package com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.fishingBoat;
import lombok.*; import lombok.*;
import org.hibernate.annotations.DynamicInsert; import org.hibernate.annotations.DynamicInsert;

View File

@ -1,4 +1,4 @@
package com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.fishingBoat; package com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.fishingBoat;
import com.dbnt.faisp.config.BaseModel; import com.dbnt.faisp.config.BaseModel;
import lombok.*; import lombok.*;

View File

@ -1,4 +1,4 @@
package com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.fishingBoat; package com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.fishingBoat;
import com.dbnt.faisp.config.BaseModel; import com.dbnt.faisp.config.BaseModel;
import lombok.*; import lombok.*;

View File

@ -1,8 +1,8 @@
package com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.processResult; package com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.processResult;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.crackdownStatus.CrackdownStatus; import com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.crackdownStatus.CrackdownStatus;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.fishingBoat.FishingBoat; import com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.fishingBoat.FishingBoat;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.fishingBoat.Violation; import com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.fishingBoat.Violation;
import lombok.Getter; import lombok.Getter;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import lombok.Setter; import lombok.Setter;

View File

@ -1,4 +1,4 @@
package com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.processResult; package com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.processResult;
import com.dbnt.faisp.config.BaseModel; import com.dbnt.faisp.config.BaseModel;
import lombok.Getter; import lombok.Getter;

View File

@ -1,8 +1,8 @@
package com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.processResult; package com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.processResult;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.fishingBoat.FishingBoat; import com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.fishingBoat.FishingBoat;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.fishingBoat.Violation; import com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.fishingBoat.Violation;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.crackdownStatus.CrackdownStatus; import com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.crackdownStatus.CrackdownStatus;
import lombok.*; import lombok.*;
import org.hibernate.annotations.DynamicInsert; import org.hibernate.annotations.DynamicInsert;
import org.hibernate.annotations.DynamicUpdate; import org.hibernate.annotations.DynamicUpdate;

View File

@ -1,8 +1,8 @@
package com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.sailor; package com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.sailor;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.crackdownStatus.CrackdownStatus; import com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.crackdownStatus.CrackdownStatus;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.fishingBoat.FishingBoat; import com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.fishingBoat.FishingBoat;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.fishingBoat.Violation; import com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.fishingBoat.Violation;
import lombok.Getter; import lombok.Getter;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import lombok.Setter; import lombok.Setter;

View File

@ -1,4 +1,4 @@
package com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.sailor; package com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.sailor;
import com.dbnt.faisp.config.BaseModel; import com.dbnt.faisp.config.BaseModel;
import lombok.Getter; import lombok.Getter;

View File

@ -1,4 +1,4 @@
package com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.sailor; package com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.sailor;
import com.dbnt.faisp.config.FileInfo; import com.dbnt.faisp.config.FileInfo;
import lombok.*; import lombok.*;

View File

@ -1,4 +1,4 @@
package com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.sailor; package com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.sailor;
import com.dbnt.faisp.config.FileInfo; import com.dbnt.faisp.config.FileInfo;
import lombok.*; import lombok.*;

View File

@ -1,7 +1,7 @@
package com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.sailor; package com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.sailor;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.crackdownStatus.CrackdownStatus; import com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.crackdownStatus.CrackdownStatus;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.fishingBoat.FishingBoat; import com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.fishingBoat.FishingBoat;
import lombok.*; import lombok.*;
import org.hibernate.annotations.DynamicInsert; import org.hibernate.annotations.DynamicInsert;
import org.hibernate.annotations.DynamicUpdate; import org.hibernate.annotations.DynamicUpdate;

View File

@ -1,12 +1,9 @@
package com.dbnt.faisp.main.faStatistics.crackdownsStatus.repository; package com.dbnt.faisp.main.faStatistics.unlawfulFishing.repository;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.asfCov.AsfCov; import com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.asfCov.AsfCov;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.crackdownStatus.CrackdownStatus;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.crackdownStatus.CrackdownStatusVersion;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;
import java.util.Optional; import java.util.Optional;
public interface AsfCovRepository extends JpaRepository<AsfCov, Integer> { public interface AsfCovRepository extends JpaRepository<AsfCov, Integer> {

View File

@ -1,6 +1,6 @@
package com.dbnt.faisp.main.faStatistics.crackdownsStatus.repository; package com.dbnt.faisp.main.faStatistics.unlawfulFishing.repository;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.crackdownStatus.CrackdownStatus; import com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.crackdownStatus.CrackdownStatus;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import java.util.Optional; import java.util.Optional;

View File

@ -1,6 +1,6 @@
package com.dbnt.faisp.main.faStatistics.crackdownsStatus.repository; package com.dbnt.faisp.main.faStatistics.unlawfulFishing.repository;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.crackdownStatus.CrackdownStatusVersion; import com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.crackdownStatus.CrackdownStatusVersion;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List; import java.util.List;

View File

@ -1,6 +1,6 @@
package com.dbnt.faisp.main.faStatistics.crackdownsStatus.repository; package com.dbnt.faisp.main.faStatistics.unlawfulFishing.repository;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.fishingBoat.FishingBoat; import com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.fishingBoat.FishingBoat;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Modifying; import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query; import org.springframework.data.jpa.repository.Query;

View File

@ -1,7 +1,6 @@
package com.dbnt.faisp.main.faStatistics.crackdownsStatus.repository; package com.dbnt.faisp.main.faStatistics.unlawfulFishing.repository;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.fishingBoat.FishingBoat; import com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.fishingBoat.FishingBoatVersion;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.fishingBoat.FishingBoatVersion;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import java.util.Optional; import java.util.Optional;

View File

@ -1,6 +1,6 @@
package com.dbnt.faisp.main.faStatistics.crackdownsStatus.repository; package com.dbnt.faisp.main.faStatistics.unlawfulFishing.repository;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.processResult.ProcessResult; import com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.processResult.ProcessResult;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import java.util.Optional; import java.util.Optional;

View File

@ -1,6 +1,6 @@
package com.dbnt.faisp.main.faStatistics.crackdownsStatus.repository; package com.dbnt.faisp.main.faStatistics.unlawfulFishing.repository;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.processResult.ProcessResultVersion; import com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.processResult.ProcessResultVersion;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List; import java.util.List;

View File

@ -1,6 +1,6 @@
package com.dbnt.faisp.main.faStatistics.crackdownsStatus.repository; package com.dbnt.faisp.main.faStatistics.unlawfulFishing.repository;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.sailor.SailorFile; import com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.sailor.SailorFile;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List; import java.util.List;

View File

@ -1,6 +1,6 @@
package com.dbnt.faisp.main.faStatistics.crackdownsStatus.repository; package com.dbnt.faisp.main.faStatistics.unlawfulFishing.repository;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.sailor.SailorFileVersion; import com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.sailor.SailorFileVersion;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
public interface SailorFileVersionRepository extends JpaRepository<SailorFileVersion, SailorFileVersion.SailorFileVersionId> { public interface SailorFileVersionRepository extends JpaRepository<SailorFileVersion, SailorFileVersion.SailorFileVersionId> {

View File

@ -1,6 +1,6 @@
package com.dbnt.faisp.main.faStatistics.crackdownsStatus.repository; package com.dbnt.faisp.main.faStatistics.unlawfulFishing.repository;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.sailor.Sailor; import com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.sailor.Sailor;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Modifying; import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query; import org.springframework.data.jpa.repository.Query;

View File

@ -1,6 +1,6 @@
package com.dbnt.faisp.main.faStatistics.crackdownsStatus.repository; package com.dbnt.faisp.main.faStatistics.unlawfulFishing.repository;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.sailor.SailorVersion; import com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.sailor.SailorVersion;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List; import java.util.List;

View File

@ -1,6 +1,6 @@
package com.dbnt.faisp.main.faStatistics.crackdownsStatus.repository; package com.dbnt.faisp.main.faStatistics.unlawfulFishing.repository;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.fishingBoat.Violation; import com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.fishingBoat.Violation;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Modifying; import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query; import org.springframework.data.jpa.repository.Query;

View File

@ -1,6 +1,6 @@
package com.dbnt.faisp.main.faStatistics.crackdownsStatus.repository; package com.dbnt.faisp.main.faStatistics.unlawfulFishing.repository;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.fishingBoat.ViolationVersion; import com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.fishingBoat.ViolationVersion;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List; import java.util.List;

View File

@ -1,15 +1,14 @@
package com.dbnt.faisp.main.faStatistics.crackdownsStatus.service; package com.dbnt.faisp.main.faStatistics.unlawfulFishing.service;
import com.dbnt.faisp.config.BaseService; import com.dbnt.faisp.config.BaseService;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.mapper.AsfCovMapper; import com.dbnt.faisp.main.faStatistics.unlawfulFishing.mapper.AsfCovMapper;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.asfCov.AsfCov; import com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.asfCov.AsfCov;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.crackdownStatus.CrackdownStatus; import com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.crackdownStatus.CrackdownStatus;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.crackdownStatus.CrackdownStatusVersion; import com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.fishingBoat.FishingBoat;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.fishingBoat.FishingBoat; import com.dbnt.faisp.main.faStatistics.unlawfulFishing.repository.AsfCovRepository;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.repository.AsfCovRepository;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.repository.CrackdownStatusRepository; import com.dbnt.faisp.main.faStatistics.unlawfulFishing.repository.CrackdownStatusRepository;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.repository.FishingBoatRepository; import com.dbnt.faisp.main.faStatistics.unlawfulFishing.repository.FishingBoatRepository;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;

View File

@ -1,15 +1,13 @@
package com.dbnt.faisp.main.faStatistics.crackdownsStatus.service; package com.dbnt.faisp.main.faStatistics.unlawfulFishing.service;
import com.dbnt.faisp.config.BaseService; import com.dbnt.faisp.config.BaseService;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.mapper.CrackdownStatusMapper; import com.dbnt.faisp.main.faStatistics.unlawfulFishing.mapper.CrackdownStatusMapper;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.crackdownStatus.CrackdownStatus; import com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.crackdownStatus.CrackdownStatus;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.crackdownStatus.CrackdownStatusDTO; import com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.crackdownStatus.CrackdownStatusVersion;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.crackdownStatus.CrackdownStatusVersion; import com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.sailor.Sailor;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.processResult.ProcessResultVersion; import com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.fishingBoat.Violation;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.sailor.Sailor; import com.dbnt.faisp.main.faStatistics.unlawfulFishing.repository.*;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.fishingBoat.Violation;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.repository.*;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;

View File

@ -1,19 +1,19 @@
package com.dbnt.faisp.main.faStatistics.crackdownsStatus.service; package com.dbnt.faisp.main.faStatistics.unlawfulFishing.service;
import com.dbnt.faisp.config.BaseService; import com.dbnt.faisp.config.BaseService;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.mapper.CrackdownStatusMapper; import com.dbnt.faisp.main.faStatistics.unlawfulFishing.mapper.CrackdownStatusMapper;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.UnlawfulFishingParam; import com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.UnlawfulFishingParam;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.crackdownStatus.CSStatistics; import com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.crackdownStatus.CSStatistics;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.crackdownStatus.CrackdownStatus; import com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.crackdownStatus.CrackdownStatus;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.crackdownStatus.CrackdownStatusDTO; import com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.crackdownStatus.CrackdownStatusDTO;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.fishingBoat.FishingBoat; import com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.fishingBoat.FishingBoat;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.fishingBoat.FishingBoatVersion; import com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.fishingBoat.FishingBoatVersion;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.fishingBoat.Violation; import com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.fishingBoat.Violation;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.fishingBoat.ViolationVersion; import com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.fishingBoat.ViolationVersion;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.processResult.ProcessResult; import com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.processResult.ProcessResult;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.sailor.Sailor; import com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.sailor.Sailor;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.repository.*; import com.dbnt.faisp.main.faStatistics.unlawfulFishing.repository.*;
import com.dbnt.faisp.util.Utils; import com.dbnt.faisp.util.Utils;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;

View File

@ -1,15 +1,11 @@
package com.dbnt.faisp.main.faStatistics.crackdownsStatus.service; package com.dbnt.faisp.main.faStatistics.unlawfulFishing.service;
import com.dbnt.faisp.config.BaseService; import com.dbnt.faisp.config.BaseService;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.mapper.ProcessResultMapper; import com.dbnt.faisp.main.faStatistics.unlawfulFishing.mapper.ProcessResultMapper;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.*; import com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.processResult.ProcessResult;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.crackdownStatus.CrackdownStatus; import com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.processResult.ProcessResultVersion;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.processResult.ProcessResult; import com.dbnt.faisp.main.faStatistics.unlawfulFishing.repository.*;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.processResult.ProcessResultVersion;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.sailor.Sailor;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.sailor.SailorVersion;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.repository.*;
import com.dbnt.faisp.util.Utils; import com.dbnt.faisp.util.Utils;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;

View File

@ -1,17 +1,17 @@
package com.dbnt.faisp.main.faStatistics.crackdownsStatus.service; package com.dbnt.faisp.main.faStatistics.unlawfulFishing.service;
import com.dbnt.faisp.config.BaseService; import com.dbnt.faisp.config.BaseService;
import com.dbnt.faisp.config.FileInfo; import com.dbnt.faisp.config.FileInfo;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.mapper.SailorMapper; import com.dbnt.faisp.main.faStatistics.unlawfulFishing.mapper.SailorMapper;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.sailor.SailorFile; import com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.sailor.SailorFile;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.sailor.SailorFileVersion; import com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.sailor.SailorFileVersion;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.crackdownStatus.CrackdownStatus; import com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.crackdownStatus.CrackdownStatus;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.fishingBoat.FishingBoat; import com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.fishingBoat.FishingBoat;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.fishingBoat.Violation; import com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.fishingBoat.Violation;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.sailor.Sailor; import com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.sailor.Sailor;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.sailor.SailorVersion; import com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.sailor.SailorVersion;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.repository.*; import com.dbnt.faisp.main.faStatistics.unlawfulFishing.repository.*;
import com.dbnt.faisp.util.Utils; import com.dbnt.faisp.util.Utils;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;

View File

@ -1,19 +0,0 @@
package com.dbnt.faisp.main.faStatistics.unlawfulFishing.service;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.UnlawfulFishingParam;
import com.dbnt.faisp.main.faStatistics.unlawfulFishing.mapper.UnlawfulFishingMapper;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
@RequiredArgsConstructor
public class UnlawfulFishing2Service {
private final UnlawfulFishingMapper unlawfulFishingMapper;
public List<Integer> selectFishingBoatYearParam() {
return unlawfulFishingMapper.selectFishingBoatYearParam();
}
}

View File

@ -1,14 +1,17 @@
package com.dbnt.faisp.main.faStatistics.crackdownsStatus.service; package com.dbnt.faisp.main.faStatistics.unlawfulFishing.service;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.crackdownStatus.CrackdownStatus; import com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.crackdownStatus.CrackdownStatus;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.crackdownStatus.UnlawfulFishingVersion; import com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.crackdownStatus.UnlawfulFishingVersion;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.fishingBoat.FishingBoat; import com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.fishingBoat.FishingBoat;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.sailor.Sailor; import com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.sailor.Sailor;
import com.dbnt.faisp.main.faStatistics.unlawfulFishing.mapper.UnlawfulFishingMapper;
import com.dbnt.faisp.main.faStatistics.unlawfulFishing.repository.CrackdownStatusRepository;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.List;
@Service @Service
@RequiredArgsConstructor @RequiredArgsConstructor
@ -18,6 +21,9 @@ public class UnlawfulFishingService {
private final ProcessResultService processResultService; private final ProcessResultService processResultService;
private final SailorService sailorService; private final SailorService sailorService;
private final CrackdownStatusRepository csRepository;
private final UnlawfulFishingMapper unlawfulFishingMapper;
@Transactional @Transactional
public Integer saveUnlawfulFishing(CrackdownStatus crackdownStatus){ public Integer saveUnlawfulFishing(CrackdownStatus crackdownStatus){
crackdownStatus = setWriteInfo(crackdownStatus); crackdownStatus = setWriteInfo(crackdownStatus);
@ -76,4 +82,11 @@ public class UnlawfulFishingService {
} }
return crackdownStatus; return crackdownStatus;
} }
public List<Integer> selectFishingBoatYearParam() {
return unlawfulFishingMapper.selectFishingBoatYearParam();
}
public CrackdownStatus selectCrackdownStatus(Integer cdsKey) {
return csRepository.findById(cdsKey).orElse(new CrackdownStatus());
}
} }

View File

@ -3,7 +3,7 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.dbnt.faisp.main.faStatistics.crackdownsStatus.mapper.AsfCovMapper"> <mapper namespace="com.dbnt.faisp.main.faStatistics.unlawfulFishing.mapper.AsfCovMapper">
<sql id="selectAsfCovListWhere"> <sql id="selectAsfCovListWhere">
<where> <where>

View File

@ -3,7 +3,7 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.dbnt.faisp.main.faStatistics.crackdownsStatus.mapper.CrackdownStatusMapper"> <mapper namespace="com.dbnt.faisp.main.faStatistics.unlawfulFishing.mapper.CrackdownStatusMapper">
<sql id="selectCrackdownStatusListWhere"> <sql id="selectCrackdownStatusListWhere">
<where> <where>
c.status &lt;> 'DST008' c.status &lt;> 'DST008'

View File

@ -3,7 +3,7 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.dbnt.faisp.main.faStatistics.crackdownsStatus.mapper.ProcessResultMapper"> <mapper namespace="com.dbnt.faisp.main.faStatistics.unlawfulFishing.mapper.ProcessResultMapper">
<sql id="selectProcessResultListWhere"> <sql id="selectProcessResultListWhere">
<where> <where>
fb.status &lt;> 'DST008' fb.status &lt;> 'DST008'

View File

@ -3,7 +3,7 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.dbnt.faisp.main.faStatistics.crackdownsStatus.mapper.SailorMapper"> <mapper namespace="com.dbnt.faisp.main.faStatistics.unlawfulFishing.mapper.SailorMapper">
<sql id="selectSailorListWhere"> <sql id="selectSailorListWhere">
<where> <where>
<if test='year != null and year != ""'> <if test='year != null and year != ""'>

View File

@ -163,7 +163,7 @@ $(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/crackdownStatusVersionInfo', url: '/unlawfulFishing/crackdownStatusVersionInfo',
data: { data: {
cdsKey: $(this).find(".cdsKey").val(), cdsKey: $(this).find(".cdsKey").val(),
versionNo: $(this).find(".versionNo").val() versionNo: $(this).find(".versionNo").val()

View File

@ -0,0 +1,26 @@
$(document).on('click', '#addCrackdownStatusBtn', function (){
getCsEditModal(null);
})
function getCsEditModal(cdsKey){
$.ajax({
url: '/unlawfulFishing/csEditModal',
data: {cdsKey: cdsKey},
type: 'GET',
dataType:"html",
success: function(html){
const contentDiv = $("#csEditModalContent");
contentDiv.empty().append(html)
$(".dateSelector").datepicker({
format: "yyyy-mm-dd",
language: "ko",
autoclose: true
});
$("#csEditModal").modal('show');
},
error:function(e){
ajaxErrorAction(e);
}
});
}

View File

@ -3,12 +3,7 @@
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout" xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
layout:decorate="~{layout/layout}"> layout:decorate="~{layout/layout}">
<th:block layout:fragment="script"> <th:block layout:fragment="script">
<script th:inline="javascript"> <script type="text/javascript" th:src="@{/js/faStatistics/unlawfulFishing/crackdownStatus.js}"></script>
const crackdownStatus = [[${crackdownStatus}]];
const commonCode = [[${session.commonCode}]];
</script>
<!--<script type="text/javascript" th:src="@{/js/faStatistics/crackdownStatus.js}"></script>-->
<script type="text/javascript" th:src="@{/js/faStatistics/fishingBoatMgt.js}"></script>
</th:block> </th:block>
<th:block layout:fragment="css"> <th:block layout:fragment="css">
<style> <style>
@ -670,7 +665,7 @@
<button class="btn btn-success" id="cdsDownExcel">엑셀 다운로드</button> <button class="btn btn-success" id="cdsDownExcel">엑셀 다운로드</button>
</div> </div>
<div class="col-auto"> <div class="col-auto">
<!--<button class="btn btn-primary" id="crackdownStatusAddBtn">등록</button>--> <button class="btn btn-primary" id="addCrackdownStatusBtn">등록</button>
</div> </div>
</div> </div>
</div> </div>
@ -678,9 +673,16 @@
</div> </div>
</div> </div>
</div> </div>
<div class="modal fade" id="fishingBoatViewModal" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1" aria-labelledby="fishingBoatViewModalLabel" aria-hidden="true"> <div class="modal fade" id="csEditModal" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1" aria-labelledby="csEditModalLabel" aria-hidden="true">
<div class="modal-dialog modal-xxl modal-dialog-scrollable"> <div class="modal-dialog modal-xxl modal-dialog-scrollable">
<div class="modal-content" id="fishingBoatViewModalContent"> <div class="modal-content" id="csEditModalContent">
</div>
</div>
</div>
<div class="modal fade" id="csViewModal" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1" aria-labelledby="csViewModalLabel" aria-hidden="true">
<div class="modal-dialog modal-xxl modal-dialog-scrollable">
<div class="modal-content" id="csViewModalContent">
</div> </div>
</div> </div>

View File

@ -0,0 +1,223 @@
<!DOCTYPE html>
<html lang="ko" xmlns:th="http://www.thymeleaf.org">
<div class="modal-header bg-dark">
<h5 class="modal-title text-white" id="csEditModalLabel" th:text="${crackdownStatus.cdsKey eq null?'단속현황 작성':'단속현황 수정'}"></h5>
<button type="button" class="btn-close f-invert" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
<form action="#" method="post" id="csEditForm">
<input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/>
<input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/>
<input type="hidden" name="cdsKey" id="cdsKey" th:value="${crackdownStatus.cdsKey}">
<input type="hidden" class="status" name="status" id="crackdownStatus" th:value="${crackdownStatus.status}">
<input type="hidden" name="wrtOrgan" th:value="${crackdownStatus.wrtOrgan}">
<input type="hidden" name="wrtPart" th:value="${crackdownStatus.wrtPart}">
<input type="hidden" name="wrtUserSeq" th:value="${crackdownStatus.wrtUserSeq}">
<input type="hidden" name="wrtUserGrd" th:value="${crackdownStatus.wrtUserGrd}">
<input type="hidden" name="wrtUserNm" th:value="${crackdownStatus.wrtUserNm}">
<input type="hidden" name="wrtDt" th:value="${#temporals.format(crackdownStatus.wrtDt, 'yyyy-MM-dd HH:mm:ss')}">
<div class="row mb-1">
<!--<label for="boatNameKr" class="col-sm-1 col-form-label col-form-label-sm text-center">선명</label>
<div class="col-sm-2">
<input type="text" class="form-control form-control-sm boatNameKr" id="boatNameKr" name="fishingBoat.boatNameKr" placeholder="한글" th:value="${crackdownStatus.fishingBoat.boatNameKr}">
</div>-->
<label for="caseNum" class="col-sm-1 col-form-label col-form-label-sm text-center">사건번호</label>
<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 " 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>
<label for="violationSelector" class="col-sm-1 col-form-label col-form-label-sm text-center">위반사항</label>
<div class="col-sm-1">
<select class="form-select form-select-sm" id="violationSelector">
<option value="">선택</option>
<th:block th:each="code:${vtList}">
<option th:value="${code.itemCd}" th:text="${code.itemValue}"></option>
</th:block>
</select>
</div>
<div class="col-sm-4">
<div class="row" id="violationDiv">
<th:block th:each="violation:${crackdownStatus.violationList}">
<div class="col-6 violation">
<input type="hidden" class="form-control form-control-sm violationCd" th:value="${violation.violation}">
<div class="input-group w-auto">
<th:block th:each="code:${session.commonCode.get('VT')}">
<input type="text" class="form-control form-control-sm" th:if="${code.itemCd eq violation.violation}" th:value="${code.itemValue}">
</th:block>
<button type="button" class="btn btn-sm btn-outline-secondary opacity-75 violationRemoveBtn">
<i class="bi bi-dash-square text-danger"></i>
</button>
</div>
</div>
</th:block>
</div>
</div>
</div>
<div class="row mb-1">
<label for="caseAgency" class="col-sm-1 col-form-label col-form-label-sm text-center">사건담당경찰서</label>
<div class="col-sm-2">
<select class="form-select form-select-sm " id="caseAgency" name="caseAgency">
<option value="">선택</option>
<th:block th:each="code:${session.commonCode.get('OG')}">
<option th:value="${code.itemCd}" th:text="${code.itemValue}" th:selected="${code.itemCd eq crackdownStatus.caseAgency}"></option>
</th:block>
</select>
</div>
<label for="casePoliceOfficer" class="col-sm-1 col-form-label col-form-label-sm text-center fs-13">사건담당경찰관</label>
<div class="col-sm-2">
<input type="text" class="form-control form-control-sm " id="casePoliceOfficer" name="casePoliceOfficer" th:value="${crackdownStatus.casePoliceOfficer}">
</div>
<label for="crackdownPolice" class="col-sm-1 col-form-label col-form-label-sm text-center">단속경찰서</label>
<div class="col-sm-2">
<select class="form-select form-select-sm crackdownPolice" name="crackdownPolice" id="crackdownPolice">
<option value="">선택</option>
<th:block th:each="code:${cpoList}">
<option th:value="${code.itemCd}" th:text="${code.itemValue}" th:selected="${code.itemCd eq crackdownStatus.crackdownPolice}"></option>
</th:block>
</select>
</div>
<label for="crackdownBoat" class="col-sm-1 col-form-label col-form-label-sm text-center">단속함정</label>
<div class="col-sm-2">
<select class="form-select form-select-sm crackdownBoat" name="crackdownBoat" id="crackdownBoat" th:data-boatcode="${crackdownStatus.crackdownBoat}">
<option value="">단속경찰서를 선택해주세요.</option>
<th:block th:each="code:${session.commonCode.get(crackdownStatus.crackdownPolice)}">
<th:block th:if="${code.useChk eq 'T'}">
<option th:value="${code.itemCd}" th:text="${code.itemValue}" th:selected="${code.itemCd eq crackdownStatus.crackdownBoat}"></option>
</th:block>
</th:block>
</select>
</div>
</div>
<div class="row mb-1">
<label class="col-sm-1 col-form-label col-form-label-sm text-center">MMSI.NO</label>
<div class="col-sm-2">
<input class="form-control form-control-sm" name="mmsi" th:value="${crackdownStatus.mmsi}">
</div>
<label for="invasionType" class="col-sm-1 col-form-label col-form-label-sm text-center">침범유형</label>
<div class="col-sm-2">
<select class="form-select form-select-sm" name="invasionType" id="invasionType">
<option value="">선택</option>
<th:block th:each="commonCode:${session.commonCode.get('IST')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}"
th:selected="${commonCode.itemCd eq crackdownStatus.invasionType}"></option>
</th:block>
</select>
</div>
<label for="nll" class="col-sm-1 col-form-label col-form-label-sm text-center">NLL</label>
<div class="col-sm-2">
<select class="form-select form-select-sm" name="nll" id="nll">
<option value="">선택</option>
<option value="Y" th:selected="${crackdownStatus.nll == 'Y'}">O</option>
<option value="N" th:selected="${crackdownStatus.nll == 'N'}">X</option>
</select>
</div>
<label for="fieldIvsgt" class="col-sm-1 col-form-label col-form-label-sm text-center">압송/현장조사</label>
<div class="col-sm-2">
<select class="form-select form-select-sm " name="fieldIvsgt" id="fieldIvsgt">
<option value="">선택</option>
<option value="C" th:selected="${crackdownStatus.fieldIvsgt eq 'C'}">압송</option>
<option value="F" th:selected="${crackdownStatus.fieldIvsgt eq 'F'}">현장조사</option>
</select>
</div>
</div>
<div class="row mb-1">
<label for="napoDate" class="col-sm-1 col-form-label col-form-label-sm text-center">나포일시</label>
<div class="col-sm-2">
<div class="input-group">
<input type="text" class="form-control form-control-sm dateSelector" id="napoDate" placeholder="yyyy-mm-dd" th:value="${#temporals.format(crackdownStatus.napoDt, 'yyyy-MM-dd')}" autocomplete="off">
<input type="text" class="form-control form-control-sm timeInputer" id="napoTime" placeholder="hh:mm" th:value="${#temporals.format(crackdownStatus.napoDt, 'HH:mm')}" autocomplete="off">
</div>
</div>
<label for="napoSeaPointLon" class="col-sm-1 col-form-label col-form-label-sm text-center">나포장소</label>
<div class="col-sm-5">
<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 " 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}">
</div>
</div>
</div>
<div class="row">
<label class="col-sm-1 col-form-label col-form-label-sm text-center bg-lightB2">특수공무집행방해</label>
<div class="col-sm-11 border" id="damageDiv"
th:with="damageFlag=${crackdownStatus.obstrExspdCnt > 0 ||
crackdownStatus.personDamageCnt > 0 ||
crackdownStatus.personDamageAmount > 0 ||
crackdownStatus.personDamageDetail ne null ||
crackdownStatus.materialDamageCnt > 0 ||
crackdownStatus.materialDamageAmount > 0 ||
crackdownStatus.materialDamageDetail ne null}">
<div class="row">
<label class="col-sm-1 col-form-label col-form-label-sm text-center bg-lightB1">인적피해</label>
<div class="col-sm-11 border">
<div class="row m-0">
<label class="col-sm-1 mb-1 col-form-label col-form-label-sm text-center">발생건수</label>
<div class="col-sm-2">
<input type="number" min="0" class="form-control form-control-sm" name="obstrExspdCnt" th:value="${crackdownStatus.obstrExspdCnt}" th:disabled="${!damageFlag}">
</div>
<label class="col-sm-1 col-form-label col-form-label-sm text-center">피해인원</label>
<div class="col-sm-2">
<input type="number" min="0" class="form-control form-control-sm" name="personDamageCnt" th:value="${crackdownStatus.personDamageCnt}" th:disabled="${!damageFlag}">
</div>
<label class="col-sm-1 col-form-label col-form-label-sm text-center">피해액</label>
<div class="col-sm-2">
<input type="number" min="0" class="form-control form-control-sm" name="personDamageAmount" placeholder="단위: 만원" th:value="${crackdownStatus.personDamageAmount}" th:disabled="${!damageFlag}">
</div>
<div class="col-sm-3"></div>
<label class="col-sm-1 col-form-label col-form-label-sm text-center">상세내용</label>
<div class="col-sm-11">
<textarea class="form-control form-control-sm" name="personDamageDetail" rows="3" th:utext="${crackdownStatus.personDamageDetail}" th:disabled="${!damageFlag}"></textarea>
</div>
</div>
</div>
</div>
<div class="row">
<label class="col-sm-1 col-form-label col-form-label-sm text-center bg-lightB1">물적피해</label>
<div class="col-sm-11 border">
<div class="row m-0">
<label class="col-sm-1 mb-1 col-form-label col-form-label-sm text-center">발생건수</label>
<div class="col-sm-2">
<input type="number" min="0" class="form-control form-control-sm" name="materialDamageCnt" th:value="${crackdownStatus.materialDamageCnt}" th:disabled="${!damageFlag}">
</div>
<label class="col-sm-1 col-form-label col-form-label-sm text-center">피해액</label>
<div class="col-sm-2">
<input type="number" min="0" class="form-control form-control-sm" name="materialDamageAmount" placeholder="단위: 만원" th:value="${crackdownStatus.materialDamageAmount}" th:disabled="${!damageFlag}">
</div>
<div class="col-sm-6"></div>
<label class="col-sm-1 col-form-label col-form-label-sm text-center">상세내용</label>
<div class="col-sm-11">
<textarea class="form-control form-control-sm" name="materialDamageDetail" rows="3" th:utext="${crackdownStatus.materialDamageDetail}" th:disabled="${!damageFlag}"></textarea>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="row mb-1">
<label class="col-sm-1 col-form-label col-form-label-sm text-center bg-lightB1">어획물 축소기재</label>
<div class="col-sm-11 border" id="catchDiv"
th:with="catchFlag=${crackdownStatus.catchFishSpecies ne null ||
crackdownStatus.fishingBoat.catchCnt > 0}">
<div class="row">
<label class="col-sm-1 col-form-label col-form-label-sm text-center">어종</label>
<div class="col-sm-2">
<input type="text" class="form-control form-control-sm" name="fishingBoat.catchFishSpecies" th:value="${crackdownStatus.fishingBoat.catchFishSpecies}" th:disabled="${!catchFlag}">
</div>
<label class="col-sm-1 col-form-label col-form-label-sm text-center">수량</label>
<div class="col-sm-2">
<input type="number" class="form-control form-control-sm" name="fishingBoat.catchCnt" placeholder="단위: kg" th:value="${crackdownStatus.fishingBoat.catchCnt>0?crackdownStatus.fishingBoat.catchCnt:''}" th:disabled="${!catchFlag}">
</div>
</div>
</div>
</div>
</form>
</div>
<div class="modal-footer bg-light">
<button type="button" class="btn btn-warning saveEditInfoBtn" data-status="DST001">임시저장</button>
<button type="button" class="btn btn-primary saveEditInfoBtn" data-status="DST007">저장</button>
<!-- <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">닫기</button>-->
</div>

View File

@ -0,0 +1,606 @@
<!DOCTYPE html>
<html lang="ko" xmlns:th="http://www.thymeleaf.org">
<div class="modal-header bg-dark">
<h5 class="modal-title text-white" id="fishingBoatEditModalLabel">불법조업 외국어선 상세정보</h5>
<button type="button" class="btn-close f-invert" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
<ul class="nav nav-tabs" id="fishingBoatTab" role="tablist">
<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>
</li>
<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>
</li>
</ul>
<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">
<input type="hidden" class="cdsKey" th:value="${crackdownStatus.cdsKey}">
<input type="hidden" class="fbKey" th:value="${crackdownStatus.fishingBoat.fbKey}">
<div class="row py-2">
<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 class="row border border-secondary">
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-label 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-label 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.fishingBoat.boatNameKr}">
</div>
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-label py-2 border-end border-secondary text-center">위반사항</label>
<div class="col-sm-5">
<div class="row">
<th:block th:each="code:${vtList}">
<th:block th:each="violation:${crackdownStatus.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-label 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-label 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-label py-2 border-end border-secondary text-center">단속경찰서</label>
<div class="col-sm-2 border-end border-secondary">
<th:block th:each="code:${cpoList}">
<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-label py-2 border-end border-secondary text-center">단속함정</label>
<div class="col-sm-2">
<th:block th:each="code:${boatList}">
<input type="text" class="form-control form-control-sm border-0" readonly th:if="${code.itemCd eq crackdownStatus.crackdownBoat}" 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-label 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-label 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-label 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-label 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-label 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-label 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-label py-2 border-end border-secondary text-center bg-lightB2">특수공무집행방해</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-label py-2 border-end border-secondary text-center bg-lightB1">인적피해</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-label 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-label 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-label 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-label 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-label py-2 border-end border-secondary text-center bg-lightB1">물적피해</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-label 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-label 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-label 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=${crackdownStatus.fishingBoat.catchFishSpecies ne null ||
crackdownStatus.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-label py-2 border-end border-secondary text-center bg-lightB1">어획물축소기재</label>
<div class="col-sm-11">
<div class="row">
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-label 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="${crackdownStatus.fishingBoat.catchFishSpecies}"></label>
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-label 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.fishingBoat.catchCnt>0}" th:text="|${crackdownStatus.fishingBoat.catchCnt}kg|"></th:block>
</label>
</div>
</div>
</div>
</th:block>
</th:block>
<th:block th:if="${!#lists.isEmpty(crackdownStatus.sailorList)}">
<div class="row py-2">
<div class="col-auto">■ 선장·선주 정보</div>
</div>
<div class="row">
<th:block th:each="sailor:${crackdownStatus.sailorList}">
<th:block th:if="${sailor.position eq 'POS001'}">
<div class="col-6" id="captainDiv">
<div class="row border border-secondary">
<label class="col-sm-2 fw-bold bg-label border-end border-secondary col-form-label col-form-label-sm py-2 border-end border-secondary text-center">선장명</label>
<div class="col-sm-8">
<div class="input-group w-auto">
<input type="text" class="form-control form-control-sm border-0" readonly th:value="${sailor.sailorNameKr}">
<input type="text" class="form-control form-control-sm border-0" readonly th:value="${sailor.sailorNameCn}">
<input type="text" class="form-control form-control-sm border-0" readonly th:value="${sailor.sailorNamePinyin}">
</div>
<th:block th:unless="${#lists.isEmpty(sailor.fileList)}">
<div id="fileDownloadDiv" class="d-none">
<div class="row justify-content-end">
<div class="col-auto">
<th:block th:each="file:${sailor.fileList}">
<a href="#" class="fileDownLink" data-board="sailor"
th:data-parentkey="${file.sailorKey}" th:data-fileseq="${file.fileSeq}" th:text="|${file.origNm}.${file.fileExtn}|"></a>
<br>
</th:block>
</div>
</div>
</div>
</th:block>
</div>
<div class="col-sm-2">
<th:block th:if="${#lists.isEmpty(sailor.fileList)}">
<div>사진 없음</div>
</th:block>
<th:block th:unless="${#lists.isEmpty(sailor.fileList)}">
<img id="captainPhoto" class="w-100" alt="선장 사진" th:src="|/file/fileDisplay?board=sailor&parentKey=${sailor.sailorKey}&fileSeq=1|">
</th:block>
</div>
</div>
<div class="row border border-secondary border-top-0">
<label class="col-sm-2 fw-bold bg-label border-end border-secondary 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="${sailor.birthdate}">
</div>
<label class="col-sm-2 fw-bold bg-label border-end border-secondary 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="${sailor.sailorContact}">
</div>
</div>
<div class="row border border-secondary border-top-0">
<label class="col-sm-2 fw-bold bg-label border-end border-secondary 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="${sailor.residence}">
</div>
<label class="col-sm-2 fw-bold bg-label border-end border-secondary 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="${sailor.arrestHistory}">
</div>
</div>
<div class="row border border-secondary border-top-0">
<label class="col-sm-2 fw-bold bg-label border-end border-secondary 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="${sailor.note}">
</div>
</div>
</div>
</th:block>
</th:block>
<th:block th:each="sailor:${crackdownStatus.sailorList}">
<th:block th:if="${sailor.position eq 'POS004'}">
<div class="col-6" id="shipOwnerDiv">
<div class="row border border-secondary border-start-0">
<label class="col-sm-2 fw-bold bg-label border-end border-secondary col-form-label col-form-label-sm py-2 border-end border-secondary text-center">선주명</label>
<div class="col-sm-10">
<div class="input-group w-auto">
<input type="text" class="form-control form-control-sm border-0" readonly th:value="${sailor.sailorNameKr}">
<input type="text" class="form-control form-control-sm border-0" readonly th:value="${sailor.sailorNameCn}">
<input type="text" class="form-control form-control-sm border-0" readonly th:value="${sailor.sailorNamePinyin}">
</div>
</div>
</div>
<div class="row border border-secondary border-start-0 border-top-0">
<label class="col-sm-2 fw-bold bg-label border-end border-secondary 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="${sailor.birthdate}">
</div>
<label class="col-sm-2 fw-bold bg-label border-end border-secondary 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="${sailor.sailorContact}">
</div>
</div>
<div class="row border border-secondary border-start-0 border-top-0">
<label class="col-sm-2 fw-bold bg-label border-end border-secondary 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="${sailor.residence}">
</div>
</div>
<div class="row border border-secondary border-start-0 border-top-0">
<label class="col-sm-2 fw-bold bg-label border-end border-secondary 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="${sailor.note}">
</div>
</div>
</div>
</th:block>
</th:block>
</div>
</th:block>
<div class="row py-2">
<div class="col-auto">■ 어선 정보</div>
</div>
<div class="row border border-secondary">
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-label 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="${crackdownStatus.fishingBoat.boatNameKr}">
<input type="text" class="form-control form-control-sm border-0" readonly th:value="${crackdownStatus.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-label 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.fishingBoat.permitNum}">
</div>
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-label 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.fishingBoat.nationality}">
</div>
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-label py-2 border-end border-secondary text-center">승선원</label>
<div class="col-sm-2 border-end border-secondary" th:if="${crackdownStatus.fishingBoat.sailorCnt>0}">
<input type="text" class="form-control form-control-sm border-0" readonly th:value="|${crackdownStatus.fishingBoat.sailorCnt}인|">
</div>
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-label py-2 border-end border-secondary text-center">톤수</label>
<div class="col-sm-2" th:if="${crackdownStatus.fishingBoat.tonCnt>0}">
<input type="text" class="form-control form-control-sm border-0" readonly th:value="|${crackdownStatus.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-label py-2 border-end border-secondary text-center">선종</label>
<div class="col-sm-2 border-end 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 crackdownStatus.fishingBoat.fisheryType}" th:value="${code.itemValue}">
</th:block>
</div>
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-label py-2 border-end border-secondary text-center">선질</label>
<div class="col-sm-2 border-end 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 crackdownStatus.fishingBoat.boatMaterial}" th:value="${code.itemValue}">
</th:block>
</div>
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-label 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="${crackdownStatus.fishingBoat.boatNnySung}">
<input type="text" class="form-control form-control-sm border-0" readonly th:value="${crackdownStatus.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-label 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.fishingBoat.offenseType ne null}" th:text="${crackdownStatus.fishingBoat.offenseType}"></th:block>
<th:block th:if="${crackdownStatus.fishingBoat.offenseWeight>0}" th:text="|${crackdownStatus.fishingBoat.offenseWeight}kg|"></th:block>
</label>
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-label 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.fishingBoat.offenseIllegalWasteQuantity>0}" th:text="|${crackdownStatus.fishingBoat.offenseIllegalWasteQuantity}kg|"></th:block>
</label>
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-label 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.fishingBoat.offenseQuantity>0}" th:text="|${crackdownStatus.fishingBoat.offenseQuantity}kg|"></th:block>
</label>
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-label 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="${crackdownStatus.fishingBoat.offenseAmount>0}" th:text="|${crackdownStatus.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-label 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.fishingBoat.damboUnpaidAmount>0}" th:text="|${crackdownStatus.fishingBoat.damboUnpaidAmount}만원|"></th:block>
</label>
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-label 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.fishingBoat.damboPayment>0}" th:text="|${crackdownStatus.fishingBoat.damboPayment}만원|"></th:block>
</label>
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-label 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="${crackdownStatus.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-label 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(crackdownStatus.fishingBoat.confiscationFrame)}" th:text="|틀: ${crackdownStatus.fishingBoat.confiscationFrame}|"></th:block>
<th:block th:if="${!#strings.isEmpty(crackdownStatus.fishingBoat.confiscationWidth)}" th:text="|폭: ${crackdownStatus.fishingBoat.confiscationWidth}|"></th:block>
<th:block th:if="${!#strings.isEmpty(crackdownStatus.fishingBoat.confiscationJo)}" th:text="|조: ${crackdownStatus.fishingBoat.confiscationJo}|"></th:block>
<th:block th:if="${!#strings.isEmpty(crackdownStatus.fishingBoat.confiscationGae)}" th:text="|개: ${crackdownStatus.fishingBoat.confiscationGae}|"></th:block>
<th:block th:if="${!#strings.isEmpty(crackdownStatus.fishingBoat.confiscationEtc)}" th:text="|기타: ${crackdownStatus.fishingBoat.confiscationEtc}|"></th:block>
</label>
</div>
<div class="row py-2">
<div class="col-auto">■ 처리 결과</div>
</div>
<div class="row border border-secondary">
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-label py-2 border-end border-secondary text-center">처리현황</label>
<div class="col-sm-2 border-end border-secondary">
<th:block th:each="code:${prList}">
<input type="text" class="form-control form-control-sm border-0" readonly th:if="${code.itemCd eq crackdownStatus.processResult.processStatus}" th:value="${code.itemValue}">
</th:block>
</div>
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-label 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.isIvsgtStop eq 'Y'?'중지':(crackdownStatus.processResult.isIvsgtStop eq 'N'?'수사중':crackdownStatus.processResult.isIvsgtStop)}">
</div>
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-label 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="${crackdownStatus.processResult.sentencingCourt}"></label>
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-label 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="${crackdownStatus.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-label 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.pressurizedTimeTaken}">
</div>
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-label 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-label 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="${crackdownStatus.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-label 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-label 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(crackdownStatus.processResult.releaseDt, 'yyyy-MM-dd hh:mm')}">
</div>
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-label 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-label 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.consignmentStartDt}">
</div>
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-label 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.consignmentEndDt}">
</div>
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-label 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.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-label 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.directHandoverDt}">
</div>
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-label 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="${crackdownStatus.processResult.handoverSeaPointLon}">
<input type="text" class="form-control form-control-sm border-0" readonly th:value="${crackdownStatus.processResult.handoverSeaPointLat}">
</div>
</div>
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-label 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.handoverBoat}">
</div>
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-label 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.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-label 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.confiscationDt}">
</div>
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-label 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.boatDisposalDt}">
</div>
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-label py-2 border-end border-secondary text-center">폐선종류</label>
<div class="col-sm-2 border-end border-secondary">
<th:block th:each="code:${bdtList}">
<input type="text" class="form-control form-control-sm border-0" readonly th:if="${code.itemCd eq crackdownStatus.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-label 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-label 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.returnDt}">
</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-label py-2 border-end border-secondary text-center">선장구속</label>
<div class="col-sm-2 border-end border-secondary">
<th:block th:each="sailor:${crackdownStatus.sailorList}">
<th:block th:if="${sailor.position eq 'POS001'}">
<input type="text" class="form-control form-control-sm border-0" readonly th:value="${sailor.isRestriction eq 'Y'?'구속':'불구속'}">
</th:block>
</th:block>
</div>
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-label py-2 border-end border-secondary text-center">항해장구속</label>
<div class="col-sm-2 border-end border-secondary">
<th:block th:each="sailor:${crackdownStatus.sailorList}">
<th:block th:if="${sailor.position eq 'POS002'}">
<input type="text" class="form-control form-control-sm border-0" readonly th:value="${sailor.isRestriction eq 'Y'?'구속':'불구속'}">
</th:block>
</th:block>
</div>
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-label py-2 border-end border-secondary text-center">기관장구속</label>
<div class="col-sm-2 border-end border-secondary">
<th:block th:each="sailor:${crackdownStatus.sailorList}">
<th:block th:if="${sailor.position eq 'POS003'}">
<input type="text" class="form-control form-control-sm border-0" readonly th:value="${sailor.isRestriction eq 'Y'?'구속':'불구속'}">
</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-label py-2 border-end border-secondary text-center">선원구속</label>
<div class="col-sm-11">
<div class="row">
<th:block th:each="sailor:${crackdownStatus.sailorList}">
<th:block th:if="${sailor.position eq 'POS005' or sailor.position eq 'POS006'}">
<div class="col-4">
<div class="row mt-2">
<label class="col-sm-auto col-form-label col-form-label-sm fw-bold text-end">직책: </label>
<label class="col-sm-auto col-form-label col-form-label-sm text-start" th:text="${sailor.position eq 'POS005'?'기타 간부선원':'일반선원 또는 확인불가'}"></label>
<label class="col-sm-auto col-form-label col-form-label-sm fw-bold text-end">구속여부: </label>
<label class="col-sm-auto col-form-label col-form-label-sm text-start" th:text="${sailor.isRestriction eq 'Y'?'구속':'불구속'}"></label>
<label class="col-sm-auto col-form-label col-form-label-sm fw-bold text-end">이름: </label>
<label class="col-sm-auto col-form-label col-form-label-sm text-start" th:text="${sailor.sailorNameKr}"></label>
</div>
</div>
</th:block>
</th:block>
</div>
</div>
</div>
</div>
<div class="tab-pane fade p-2 mx-2" id="fishingBoatVersionTabPanel" role="tabpanel" aria-labelledby="fishingBoatVersionTab" tabindex="0">
<div class="row">
<div class="col-4">
<table class="table table-hover">
<thead>
<tr>
<td></td>
<td>수정자</td>
<td>수정일</td>
</tr>
</thead>
<tbody>
<tr class="versionInfoTr" th:each="versionInfo:${crackdownStatus.crackdownStatusVersionList}">
<input type="hidden" class="cdsKey" th:value="${versionInfo.cdsKey}">
<input type="hidden" class="versionNo" th:value="${versionInfo.versionNo}">
<td><input type="checkbox" class="versionInfoChkbox"></td>
<td>
<th:block th:each="commonCode:${session.commonCode.get('OG')}">
<th:block th:if="${versionInfo.wrtOrgan eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></th:block>
</th:block>
<br>
<th:block th:each="commonCode:${session.commonCode.get('JT')}">
<th:block th:if="${versionInfo.wrtUserGrd eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></th:block>
</th:block>
<th:block th:text="${versionInfo.wrtUserNm}"></th:block>
</td>
<td th:text="${#temporals.format(versionInfo.wrtDt, 'yyyy-MM-dd HH:mm')}"></td>
</tr>
</tbody>
</table>
</div>
<div class="col-8" id="versionInfoDiv">
</div>
</div>
</div>
</div>
</div>
<th:block th:if="${modalType ne 'viewOnly'}">
<th:block th:if="${userSeq eq crackdownStatus.fishingBoat.wrtUserSeq
or (accessAuth eq 'ACC003' and #lists.contains(mgtOrganList, crackdownStatus.fishingBoat.wrtOrgan))}">
<!--작성자, 관리자일 경우 수정, 삭제 허용-->
<div class="modal-footer justify-content-between bg-light">
<div class="col-auto">
<button type="button" class="btn btn-danger" id="deleteFishingBoatBtn">삭제</button>
</div>
<div class="col-auto">
<button type="button" class="btn btn-warning" id="editFishingBoatBtn">수정</button>
</div>
</div>
</th:block>
</th:block>