diff --git a/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/FishingBoatController.java b/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/FishingBoatController.java index bead2d9b..93ef79ff 100644 --- a/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/FishingBoatController.java +++ b/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/FishingBoatController.java @@ -111,6 +111,7 @@ public class FishingBoatController { if(crackdownStatus.getCdsKey()!=null){ crackdownStatus = fishingBoatService.selectCrackdownStatus(crackdownStatus.getCdsKey()); }else{ + crackdownStatus.setNapoDt(LocalDateTime.now()); crackdownStatus.setFishingBoat(new FishingBoat()); crackdownStatus.setProcessResult(new ProcessResult()); crackdownStatus.getFishingBoat().setWrtOrgan(loginUser.getOgCd()); @@ -153,4 +154,10 @@ public class FishingBoatController { mav.addObject("bmList", codeMgtService.selectCodeMgtList("BM")); return mav; } + + @PostMapping("/deleteFishingBoat") + @ResponseBody + public void deleteFishingBoat (@RequestBody FishingBoat boatInfo){ + fishingBoatService.deleteFishingBoat(boatInfo.getFbKey()); + } } diff --git a/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/repository/FishingBoatRepository.java b/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/repository/FishingBoatRepository.java index 729a2a20..15ecd7cb 100644 --- a/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/repository/FishingBoatRepository.java +++ b/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/repository/FishingBoatRepository.java @@ -2,12 +2,17 @@ package com.dbnt.faisp.main.faStatistics.crackdownsStatus.repository; import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.fishingBoat.FishingBoat; import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Modifying; +import org.springframework.data.jpa.repository.Query; import java.util.Optional; public interface FishingBoatRepository extends JpaRepository { - Optional findByCdsKey(Integer cdsKey); - Optional findByFbKey(Integer fbKey); + Optional findByCdsKey(Integer cdsKey); + Optional findByFbKey(Integer fbKey); + @Modifying(clearAutomatically = true) + @Query("update FishingBoat set status = :status where fbKey = :fbKey") + void bulkModifyingByFbKeyToStatus(Integer fbKey, String status); } 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 ad32f605..e4f06f35 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 @@ -18,6 +18,7 @@ import com.dbnt.faisp.util.Utils; import lombok.RequiredArgsConstructor; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import java.util.ArrayList; import java.util.List; @@ -214,11 +215,13 @@ public class FishingBoatService extends BaseService { int fbKey = fishingBoatRepository.save(fishingBoat).getFbKey(); violationRepository.deleteByFbKey(fbKey); int i=1; - for(Violation violation: violationList){ - violation.setFbKey(fbKey); - violation.setViolationKey(i++); + if(violationList != null){ + for(Violation violation: violationList){ + violation.setFbKey(fbKey); + violation.setViolationKey(i++); + } + violationRepository.saveAll(violationList); } - violationRepository.saveAll(violationList); if(!fishingBoat.getStatus().equals("DST001")){ FishingBoatVersion lastVersion = fishingBoatVersionRepository.findTop1ByFbKeyOrderByVersionNoDesc(fbKey).orElse(null); FishingBoatVersion fishingBoatVersion = new FishingBoatVersion(); @@ -241,17 +244,19 @@ public class FishingBoatService extends BaseService { public CSStatistics calculationCSStatistics(List csDTOList) { CSStatistics statistics = new CSStatistics(); for(CrackdownStatusDTO dto: csDTOList){ - if (dto.getViolationCode().contains("VT002")){ - statistics.setVt002Cnt(statistics.getVt002Cnt()+1); - } - if (dto.getViolationCode().contains("VT003") || dto.getViolationCode().contains("VT004")){ - statistics.setVt003vt004Cnt(statistics.getVt003vt004Cnt()+1); - } - if (dto.getViolationCode().contains("VT029")){ - statistics.setVt029Cnt(statistics.getVt029Cnt()+1); - } - if (dto.getViolationCode().contains("VT030")){ - statistics.setVt030Cnt(statistics.getVt030Cnt()+1); + if(!Utils.isEmpty(dto.getViolationCode())){ + if (dto.getViolationCode().contains("VT002")){ + statistics.setVt002Cnt(statistics.getVt002Cnt()+1); + } + if (dto.getViolationCode().contains("VT003") || dto.getViolationCode().contains("VT004")){ + statistics.setVt003vt004Cnt(statistics.getVt003vt004Cnt()+1); + } + if (dto.getViolationCode().contains("VT029")){ + statistics.setVt029Cnt(statistics.getVt029Cnt()+1); + } + if (dto.getViolationCode().contains("VT030")){ + statistics.setVt030Cnt(statistics.getVt030Cnt()+1); + } } if (dto.getNll().equals("Y")){ statistics.setNllCnt(statistics.getNllCnt()+1); @@ -359,7 +364,7 @@ public class FishingBoatService extends BaseService { if (dto.getConfiscationDt() == null){ statistics.setConfiscationNotCnt(statistics.getConfiscationNotCnt()+1); } - if(dto.getFieldIvsgt().equals("F")){ + if(!Utils.isEmpty(dto.getFieldIvsgt()) && dto.getFieldIvsgt().equals("F")){ statistics.setFieldIvsgtCnt(statistics.getFieldIvsgtCnt()+1); } if(!Utils.isEmpty(dto.getConfiscationFrame())){ @@ -380,4 +385,9 @@ public class FishingBoatService extends BaseService { } return statistics; } + + @Transactional + public void deleteFishingBoat(Integer fbKey) { + fishingBoatRepository.bulkModifyingByFbKeyToStatus(fbKey, "DST008"); + } } diff --git a/src/main/java/com/dbnt/faisp/main/faStatistics/internationalCrimeArrest/service/InternationalCrimeArrestService.java b/src/main/java/com/dbnt/faisp/main/faStatistics/internationalCrimeArrest/service/InternationalCrimeArrestService.java index dca51f61..ebf0415c 100644 --- a/src/main/java/com/dbnt/faisp/main/faStatistics/internationalCrimeArrest/service/InternationalCrimeArrestService.java +++ b/src/main/java/com/dbnt/faisp/main/faStatistics/internationalCrimeArrest/service/InternationalCrimeArrestService.java @@ -82,7 +82,7 @@ public class InternationalCrimeArrestService extends BaseService { @Transactional public void deleteInternationalCrimeArrest(InternationalCrimeArrest internationalCrimeArrest) { - internationalCrimeArrestRepository.bulkModifyingByIcaKeyToStatus(internationalCrimeArrest.getIcaKey(), "D"); + internationalCrimeArrestRepository.bulkModifyingByIcaKeyToStatus(internationalCrimeArrest.getIcaKey(), "DST008"); } } diff --git a/src/main/resources/mybatisMapper/CrackdownStatusMapper.xml b/src/main/resources/mybatisMapper/CrackdownStatusMapper.xml index 2e93d046..cc8f0607 100644 --- a/src/main/resources/mybatisMapper/CrackdownStatusMapper.xml +++ b/src/main/resources/mybatisMapper/CrackdownStatusMapper.xml @@ -439,6 +439,7 @@ + b.status <> 'DST008' and extract(year from a.napo_dt) = ${year} diff --git a/src/main/resources/static/js/faStatistics/fishingBoatMgt.js b/src/main/resources/static/js/faStatistics/fishingBoatMgt.js index 497b1812..b393a3a1 100644 --- a/src/main/resources/static/js/faStatistics/fishingBoatMgt.js +++ b/src/main/resources/static/js/faStatistics/fishingBoatMgt.js @@ -58,6 +58,35 @@ $(document).on('click', '#editFishingBoatBtn', function (){ getFishingBoatEditModal($("#fishingBoatViewModalContent").find(".cdsKey").val()); $("#fishingBoatViewModal").modal('hide'); }) + +$(document).on('click', '#deleteFishingBoatBtn', function (){ + if(confirm("삭제하시겠습니까?" + + "\n되돌릴 수 없습니다." + + "\n연관된 단속현황, 처리현황, 선원정보가 같이 지워집니다.")){ + contentFade("in"); + $.ajax({ + type : 'POST', + data : JSON.stringify({fbKey: $("#fishingBoatViewModalContent").find(".fbKey").val()}), + url : "/faStatistics/deleteFishingBoat", + contentType: 'application/json', + beforeSend: function (xhr){ + xhr.setRequestHeader($("[name='_csrf_header']").val(), $("[name='_csrf']").val()); + }, + success : function(result) { + alert("삭제되었습니다."); + let searchParam = location.search; + if(searchParam.includes("refDocKey")){ + searchParam = searchParam.substring(0, searchParam.indexOf("&")) + } + location.href = location.pathname+searchParam; + }, + error : function(xhr, status) { + alert("삭제를 실패하였습니다.") + contentFade("out"); + } + }) + } +}) $(document).on('change', '#caseNum', function (){ $.ajax({ url: '/faStatistics/checkCaseNum', @@ -433,12 +462,11 @@ function saveFishingBoatInfo(status){ } function valueCheck(status){ - if(!$("#napoDt").val()){ - alert("나포일시를 입력해주세요") - return false; - } if(status === "DST007"){ - + if(!$("#napoDt").val()){ + alert("나포일시를 입력해주세요") + return false; + } } return true; } diff --git a/src/main/resources/templates/faStatistics/fishingBoat/fishingBoatEditModal.html b/src/main/resources/templates/faStatistics/fishingBoat/fishingBoatEditModal.html index 556a8cb9..700d586c 100644 --- a/src/main/resources/templates/faStatistics/fishingBoat/fishingBoatEditModal.html +++ b/src/main/resources/templates/faStatistics/fishingBoat/fishingBoatEditModal.html @@ -147,7 +147,7 @@
- +
@@ -159,7 +159,6 @@ -
- +
@@ -553,7 +552,7 @@
-
+
@@ -593,7 +592,7 @@
- +
@@ -685,7 +684,7 @@
- +
@@ -693,7 +692,6 @@ -
@@ -803,7 +801,6 @@
-
diff --git a/src/main/resources/templates/faStatistics/fishingBoat/fishingBoatViewModal.html b/src/main/resources/templates/faStatistics/fishingBoat/fishingBoatViewModal.html index 9222e2ba..2af51d60 100644 --- a/src/main/resources/templates/faStatistics/fishingBoat/fishingBoatViewModal.html +++ b/src/main/resources/templates/faStatistics/fishingBoat/fishingBoatViewModal.html @@ -16,6 +16,7 @@
+
@@ -589,11 +590,15 @@
- + \ No newline at end of file