From 13696ece487961e2158bd8ea1c821e911a772bc9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B0=95=EC=84=9D=20=EC=B5=9C?= Date: Mon, 16 Jan 2023 18:33:23 +0900 Subject: [PATCH] =?UTF-8?q?=EB=B6=88=EB=B2=95=EC=A1=B0=EC=97=85=20?= =?UTF-8?q?=EC=99=B8=EA=B5=AD=EC=96=B4=EC=84=A0=20=EC=9A=94=EC=B2=AD?= =?UTF-8?q?=EC=82=AC=ED=95=AD=20=EC=9E=91=EC=97=85=EC=A4=91.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/dbnt/faisp/config/FileController.java | 5 +- .../repository/ViolationRepository.java | 1 + .../service/FishingBoatService.java | 55 ++++----- .../service/SailorService.java | 5 + .../service/UnlawfulFishingService.java | 2 +- .../static/js/faStatistics/fishingBoatMgt.js | 34 +++++- .../crackdownStatus/crackdownStatus.html | 63 +++++++++- .../fishingBoat/fishingBoatEditModal.html | 105 ++++++----------- .../fishingBoat/fishingBoatMgt.html | 56 +++------ .../fishingBoat/fishingBoatViewModal.html | 110 +++++++++--------- 10 files changed, 237 insertions(+), 199 deletions(-) diff --git a/src/main/java/com/dbnt/faisp/config/FileController.java b/src/main/java/com/dbnt/faisp/config/FileController.java index d88b8233..9d91801f 100644 --- a/src/main/java/com/dbnt/faisp/config/FileController.java +++ b/src/main/java/com/dbnt/faisp/config/FileController.java @@ -43,6 +43,7 @@ public class FileController extends BaseService{ private final ResultService resultService; private final BoardInvestigationService boardInvestigationService; private final FishingBoatService fishingBoatService; + private final SailorService sailorService; private final SriService sriService; private final CounterIntelligenceService ciService; private final MajorStatusService majorStatusService; @@ -75,7 +76,7 @@ public class FileController extends BaseService{ Integer parentKey, Integer fileSeq) { FileInfo fileInfo = getFileInfo(board, parentKey, fileSeq); - String pathStr = fileInfo.getSavePath()+fileInfo.getConvNm(); + String pathStr = fileInfo.getSavePath()+File.separator+fileInfo.getConvNm(); Resource resource = new FileSystemResource(pathStr); if(!resource.exists()){ return new ResponseEntity<>(HttpStatus.NOT_FOUND); @@ -137,7 +138,7 @@ public class FileController extends BaseService{ downloadFile = boardInvestigationService.selectIvsgtFile(parentKey, fileSeq); break; case "sailor": - downloadFile = fishingBoatService.selectSailorFile(parentKey, fileSeq); + downloadFile = sailorService.selectSailorFile(parentKey, fileSeq); break; case "sri": downloadFile = sriService.selectFaSriFile(parentKey, fileSeq); diff --git a/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/repository/ViolationRepository.java b/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/repository/ViolationRepository.java index 4dcdc5a2..9523bcbc 100644 --- a/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/repository/ViolationRepository.java +++ b/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/repository/ViolationRepository.java @@ -13,6 +13,7 @@ import java.util.Optional; public interface ViolationRepository extends JpaRepository { List findByFbKey(Integer fbKey); Optional findTopByFbKeyOrderByViolationKeyDesc(int fbKey); + void deleteByFbKey(Integer fbKey); @Transactional @Modifying diff --git a/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/service/FishingBoatService.java b/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/service/FishingBoatService.java index b56f2b58..9ff087c0 100644 --- a/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/service/FishingBoatService.java +++ b/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/service/FishingBoatService.java @@ -36,17 +36,13 @@ public class FishingBoatService extends BaseService { private final CrackdownStatusMapper crackdownStatusMapper; private final CrackdownStatusRepository crackdownStatusRepository; - private final CrackdownStatusVersionRepository crackdownStatusVersionRepository; private final FishingBoatRepository fishingBoatRepository; private final FishingBoatVersionRepository fishingBoatVersionRepository; private final ViolationRepository violationRepository; private final ViolationVersionRepository violationVersionRepository; private final ProcessResultRepository processResultRepository; - private final ProcessResultVersionRepository processResultVersionRepository; private final SailorRepository sailorRepository; - private final SailorVersionRepository sailorVersionRepository; private final SailorFileRepository sailorFileRepository; - private final SailorFileVersionRepository sailorFileVersionRepository; public List selectFishingBoatList(CrackdownStatus crackdownStatus){ return crackdownStatusMapper.selectFishingBoatList(crackdownStatus); @@ -71,6 +67,7 @@ public class FishingBoatService extends BaseService { } return crackdownStatus; } +/* @Transactional public Integer saveCrackdownStatus(CrackdownStatus crackdownStatus, List sailorFiles) { @@ -191,6 +188,7 @@ public class FishingBoatService extends BaseService { } return cdsKey; } +*/ public Integer checkCaseNum(String caseNum) { return crackdownStatusRepository.findTop1ByCaseNum(caseNum).orElse(null)==null?0:1; @@ -202,44 +200,31 @@ public class FishingBoatService extends BaseService { return fishingBoat; } - public FileInfo selectSailorFile(Integer sailorKey, Integer fileSeq) { - return sailorFileRepository.findById(new SailorFile.SailorFileId(sailorKey, fileSeq)).orElse(null); - } - - private void saveCaptainPhoto(Integer sailorKey, Integer versionNo, List fileList){ - int fileSeq = 1; - for(MultipartFile file : fileList){ - String saveName = UUID.randomUUID().toString(); - String path = locationPath+ File.separator+sailorPath; - saveFile(file, new File(path+File.separator+saveName)); - - String originalFilename = file.getOriginalFilename(); - int extnIdx = originalFilename.lastIndexOf("."); - SailorFile fileInfo = new SailorFile(); - fileInfo.setSailorKey(sailorKey); - fileInfo.setFileSeq(fileSeq++); - fileInfo.setOrigNm(originalFilename.substring(0, extnIdx)); - fileInfo.setFileExtn(originalFilename.substring(extnIdx+1)); - fileInfo.setConvNm(saveName); - fileInfo.setFileSize(calculationSize(file.getSize())); - fileInfo.setSavePath(path); - SailorFileVersion versionInfo = new SailorFileVersion(); - BeanUtils.copyProperties(fileInfo, versionInfo); - versionInfo.setVersionNo(versionNo); - sailorFileRepository.save(fileInfo); - sailorFileVersionRepository.save(versionInfo); - } - } - - public int saveFishingBoatOnly(int cdsKey, FishingBoat fishingBoat) { + public int saveFishingBoatOnly(int cdsKey, FishingBoat fishingBoat, List violationList) { fishingBoat.setCdsKey(cdsKey); int fbKey = fishingBoatRepository.save(fishingBoat).getFbKey(); + violationRepository.deleteByFbKey(fbKey); + int i=1; + for(Violation violation: violationList){ + violation.setFbKey(fbKey); + violation.setViolationKey(i++); + } + violationRepository.saveAll(violationList); if(!fishingBoat.getStatus().equals("DST001")){ FishingBoatVersion lastVersion = fishingBoatVersionRepository.findTop1ByFbKeyOrderByVersionNoDesc(fbKey).orElse(null); FishingBoatVersion fishingBoatVersion = new FishingBoatVersion(); BeanUtils.copyProperties(fishingBoat, fishingBoatVersion); - fishingBoatVersion.setVersionNo(lastVersion==null?1:(lastVersion.getVersionNo()+1)); + int versionNo = lastVersion==null?1:(lastVersion.getVersionNo()+1); + fishingBoatVersion.setVersionNo(versionNo); fishingBoatVersionRepository.save(fishingBoatVersion); + List violationVersionList = new ArrayList<>(); + for(Violation violation: violationList){ + ViolationVersion violationVersion = new ViolationVersion(); + BeanUtils.copyProperties(violation, violationVersion); + violationVersion.setVersionNo(versionNo); + violationVersionList.add(violationVersion); + } + violationVersionRepository.saveAll(violationVersionList); } return fbKey; } diff --git a/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/service/SailorService.java b/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/service/SailorService.java index a06ea725..f6ca8d1d 100644 --- a/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/service/SailorService.java +++ b/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/service/SailorService.java @@ -2,6 +2,7 @@ package com.dbnt.faisp.main.faStatistics.crackdownsStatus.service; import com.dbnt.faisp.config.BaseService; +import com.dbnt.faisp.config.FileInfo; import com.dbnt.faisp.main.faStatistics.crackdownsStatus.mapper.SailorMapper; import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.SailorFile; import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.SailorFileVersion; @@ -157,4 +158,8 @@ public class SailorService extends BaseService { } } } + + public FileInfo selectSailorFile(Integer sailorKey, Integer fileSeq) { + return sailorFileRepository.findById(new SailorFile.SailorFileId(sailorKey, fileSeq)).orElse(null); + } } diff --git a/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/service/UnlawfulFishingService.java b/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/service/UnlawfulFishingService.java index d9b83555..ead4d60d 100644 --- a/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/service/UnlawfulFishingService.java +++ b/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/service/UnlawfulFishingService.java @@ -21,7 +21,7 @@ public class UnlawfulFishingService { public Integer saveUnlawfulFishing(CrackdownStatus crackdownStatus){ crackdownStatus = setWriteInfo(crackdownStatus); int cdsKey = crackdownStatusService.saveCrackdownStatusOnly(crackdownStatus); - int fbKey = fishingBoatService.saveFishingBoatOnly(cdsKey, crackdownStatus.getFishingBoat()); + int fbKey = fishingBoatService.saveFishingBoatOnly(cdsKey, crackdownStatus.getFishingBoat(), crackdownStatus.getViolationList()); processResultService.saveProcessResultOnly(cdsKey, crackdownStatus.getProcessResult()); for(Sailor sailor: crackdownStatus.getSailorList()){ if(sailor.getPosition().equals("POS001")){ diff --git a/src/main/resources/static/js/faStatistics/fishingBoatMgt.js b/src/main/resources/static/js/faStatistics/fishingBoatMgt.js index 836539c7..01df7109 100644 --- a/src/main/resources/static/js/faStatistics/fishingBoatMgt.js +++ b/src/main/resources/static/js/faStatistics/fishingBoatMgt.js @@ -207,9 +207,32 @@ function getFishingBoatEditModal(cdsKey){ getCrackdownBoatOption(crackdownPolice) } if(cdsKey !== null){ - $(".crackdownStatusInfo").attr("disabled", "disabled") + if($("#crackdownStatus").val()!=="DST001"){ + $(".crackdownStatusInfo").attr("disabled", "disabled") + } + if($("#processResultStatus").val()!=="DST001"){ + $(".processResultInfo").attr("disabled", "disabled") + } + $(".sailorInfo").attr("disabled", "disabled") - $(".processResultInfo").attr("disabled", "disabled") + if($("#captainStatus").val()==="DST001"){ + $("#captainDiv").find("input").removeAttr("disabled") + $("#captainRestriction").removeAttr("disabled") + } + if($("#shipOwnerStatus").val()==="DST001"){ + $("#shipOwnerDiv").find("input").removeAttr("disabled") + } + if($("#navigatingOfficerStatus").val()==="DST001"){ + $("#navigatingOfficerRestriction").removeAttr("disabled") + } + if($("#chiefEngineerStatus").val()==="DST001"){ + $("#chiefEngineerRestriction").removeAttr("disabled") + } + $.each($(".sailorRestriction"), function (idx, div){ + if($(div).find(".sailorStatus").val()==="DST001"){ + $(div).find("input,select").removeAttr("disabled"); + } + }) }else{ setUploadDiv(); } @@ -270,7 +293,7 @@ function childInputStateChange(selectorValue, inputs){ } function saveFishingBoatInfo(status){ if(confirm("저장하시겠습니까?")){ - $("#status").val(status) + $(".status").val(status) contentFade("in"); const formData = new FormData($("#fishingBoatEditForm")[0]); for(const file of files) { @@ -284,6 +307,7 @@ function saveFishingBoatInfo(status){ // 선장 정보 입력 const sailorNameKr = $("#sailorNameKr").val(); if(sailorNameKr){ + formData.append('sailorList['+sailorCnt+'].sailorKey', $("#captainSailorKey").val()); formData.append('sailorList['+sailorCnt+'].sailorNameKr', sailorNameKr); formData.append('sailorList['+sailorCnt+'].sailorNameCn', $("#sailorNameCn").val()); formData.append('sailorList['+sailorCnt+'].sailorNamePinyin', $("#sailorNamePinyin").val()); @@ -300,6 +324,7 @@ function saveFishingBoatInfo(status){ // 선주 정보 입력 const sailorNameKr2 = $("#sailorNameKr2").val(); if(sailorNameKr) { + formData.append('sailorList['+sailorCnt+'].sailorKey', $("#ownerSailorKey").val()); formData.append('sailorList[' + sailorCnt + '].sailorNameKr', sailorNameKr2); formData.append('sailorList[' + sailorCnt + '].sailorNameCn', $("#sailorNameCn2").val()); formData.append('sailorList[' + sailorCnt + '].sailorNamePinyin', $("#sailorNamePinyin2").val()); @@ -312,12 +337,14 @@ function saveFishingBoatInfo(status){ } const navigatingOfficerRestriction = $("#navigatingOfficerRestriction").val() if(navigatingOfficerRestriction){ + formData.append('sailorList['+sailorCnt+'].sailorKey', $("#navigatingOfficerKey").val()); formData.append('sailorList['+sailorCnt+'].isRestriction', navigatingOfficerRestriction); formData.append('sailorList['+sailorCnt+'].position', "POS002"); sailorCnt++; } const chiefEngineerRestriction = $("#chiefEngineerRestriction").val(); if(chiefEngineerRestriction){ + formData.append('sailorList['+sailorCnt+'].sailorKey', $("#chiefEngineerKey").val()); formData.append('sailorList['+sailorCnt+'].isRestriction', chiefEngineerRestriction); formData.append('sailorList['+sailorCnt+'].position', "POS003"); sailorCnt++; @@ -328,6 +355,7 @@ function saveFishingBoatInfo(status){ alert("선원의 직책이 선택되지 않았습니다.") return false } + formData.append('sailorList['+(idx+sailorCnt)+'].sailorKey', $(div).find(".sailorKey").val()); formData.append('sailorList['+(idx+sailorCnt)+'].isRestriction', $(div).find(".normalSailorRestriction").val()); formData.append('sailorList['+(idx+sailorCnt)+'].sailorNameKr', $(div).find(".normalSailorNm").val()); formData.append('sailorList['+(idx+sailorCnt)+'].position', position); diff --git a/src/main/resources/templates/faStatistics/crackdownStatus/crackdownStatus.html b/src/main/resources/templates/faStatistics/crackdownStatus/crackdownStatus.html index 80da4f30..ef844273 100644 --- a/src/main/resources/templates/faStatistics/crackdownStatus/crackdownStatus.html +++ b/src/main/resources/templates/faStatistics/crackdownStatus/crackdownStatus.html @@ -434,7 +434,7 @@ 단순폐선 폐선조건부공매 - + + + + + + + + + + + + + 단속경찰서 + 단속함정 + 성 + 시 + 이름 + 출생년도 + 어종 + 수량 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 나포일시 + 석방일시 + 소요시간 + 소요시간 + 거리(해리) + + + + + diff --git a/src/main/resources/templates/faStatistics/fishingBoat/fishingBoatEditModal.html b/src/main/resources/templates/faStatistics/fishingBoat/fishingBoatEditModal.html index 9acbc44f..f3c098e8 100644 --- a/src/main/resources/templates/faStatistics/fishingBoat/fishingBoatEditModal.html +++ b/src/main/resources/templates/faStatistics/fishingBoat/fishingBoatEditModal.html @@ -9,8 +9,11 @@ + + + - + @@ -70,8 +73,13 @@
- + + + + +
@@ -174,7 +182,7 @@
- +
@@ -211,6 +219,8 @@
+ +
@@ -250,29 +260,29 @@
- -
- -
-
- -
사진을 업로드 해주세요. -
- -
- - 삭제 -
-
-
+
+ +
+
+ +
사진을 업로드 해주세요. +
+ +
+ + 삭제 +
+
-
- + +
+ +
@@ -280,7 +290,7 @@
- +
@@ -547,53 +557,6 @@

-
@@ -686,6 +649,8 @@
+ + + +
- +
- +
- +
- +
- +
@@ -58,11 +58,11 @@
- +
- +
@@ -177,14 +177,14 @@
■ 어선 정보
- +
- +
@@ -198,37 +198,37 @@
- +
- +
- +
- +
- +
- +
- +
@@ -237,41 +237,41 @@
- +
- +
- +
- +
- +
- +
- +
- +
@@ -281,84 +281,84 @@
■ 처리 결과
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +
@@ -366,7 +366,7 @@
- +
@@ -374,7 +374,7 @@
- +
@@ -384,41 +384,47 @@
- +
- +
+ + + + + + +
-
- +