From b73de9c0675ba160c7347fd9b88dad16b1bfda3a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B0=95=EC=84=9D=20=EC=B5=9C?= Date: Fri, 7 Jul 2023 18:00:20 +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=B2=98=EB=A6=AC?= =?UTF-8?q?=ED=98=84=ED=99=A9=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 --- .../UnlawfulFishingController.java | 46 ++++--- .../mapper/UnlawfulFishingMapper.java | 5 + .../model/processResult/ShipProcessInfo.java | 35 +---- .../ShipProcessInfoHistoryRepository.java | 5 +- .../repository/ShipProcessInfoRepository.java | 2 +- .../service/UnlawfulFishingService.java | 25 ++++ .../mybatisMapper/UnlawfulFishingMapper.xml | 7 + .../unlawfulFishing/illegalShipSelectModal.js | 17 +++ .../unlawfulFishing/shipProcessInfo.js | 74 ++++++++++ .../crackdownInfo/cdiSelectModal.html | 6 +- .../illegalShipInfo/isiSelectModal.html | 126 +++++++++++------- .../shipProcessInfo/shipProcessInfoPage.html | 46 ++----- .../shipProcessInfo/spiEditModal.html | 85 +++++------- 13 files changed, 289 insertions(+), 190 deletions(-) diff --git a/src/main/java/com/dbnt/faisp/main/faStatistics/unlawfulFishing/UnlawfulFishingController.java b/src/main/java/com/dbnt/faisp/main/faStatistics/unlawfulFishing/UnlawfulFishingController.java index 824264c0..ea18cd33 100644 --- a/src/main/java/com/dbnt/faisp/main/faStatistics/unlawfulFishing/UnlawfulFishingController.java +++ b/src/main/java/com/dbnt/faisp/main/faStatistics/unlawfulFishing/UnlawfulFishingController.java @@ -172,11 +172,9 @@ public class UnlawfulFishingController { } @GetMapping("/isiSelectModal") - public ModelAndView illegalShipInfoSelectModal(@AuthenticationPrincipal UserInfo loginUser, IllegalShipInfo params){ + public ModelAndView illegalShipInfoSelectModal(@AuthenticationPrincipal UserInfo loginUser, UnlawfulFishingParam params){ ModelAndView mav = new ModelAndView("faStatistics/unlawfulFishing/illegalShipInfo/isiSelectModal"); - List csDTOList = new ArrayList<>(); - - mav.addObject("crackdownInfoList", csDTOList); + mav.addObject("illegalShipInfoList", unlawfulFishingService.selectIllegalShipInfoList(params)); mav.addObject("searchParams", params); return mav; } @@ -188,19 +186,11 @@ public class UnlawfulFishingController { AccessConfig accessConfig = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/unlawfulFishing/shipProcessInfo").get(0); mav.addObject("menuKey", accessConfig.getMenuKey()); mav.addObject("accessAuth", accessConfig.getAccessAuth()); + params.setQueryInfo(); + mav.addObject("shipProcessInfoList", unlawfulFishingService.selectShipProcessInfoList(params)); + params.setContentCnt(unlawfulFishingService.selectShipProcessInfoListCnt(params)); + params.setPaginationInfo(); - if(params.getYear()==null){ - params.setYear(LocalDateTime.now().getYear()); - } - List yearList = unlawfulFishingService.selectFishingBoatYearParam(); - if(!yearList.contains(params.getYear())){ - yearList.add(params.getYear()); - } - List csDTOList = new ArrayList<>(); - CSStatistics statistics = new CSStatistics(); - - mav.addObject("shipProcessInfoList", csDTOList); - mav.addObject("yearList", yearList); mav.addObject("searchParams", params); return mav; } @@ -208,7 +198,7 @@ public class UnlawfulFishingController { @GetMapping("/spiEditModal") public ModelAndView shipProcessInfoEditModal(@AuthenticationPrincipal UserInfo loginUser, ShipProcessInfo shipProcessInfo){ ModelAndView mav = new ModelAndView("faStatistics/unlawfulFishing/shipProcessInfo/spiEditModal"); - if(shipProcessInfo.getCdsKey()!=null){ + if(shipProcessInfo.getPrKey()!=null){ shipProcessInfo = unlawfulFishingService.selectShipProcessInfo(shipProcessInfo.getPrKey()); }else{ shipProcessInfo.setWrtOrgan(loginUser.getOgCd()); @@ -222,6 +212,28 @@ public class UnlawfulFishingController { return mav; } + @GetMapping("/spiViewModal") + public ModelAndView shipProcessInfoViewModal(@AuthenticationPrincipal UserInfo loginUser, ShipProcessInfo spi){ + ModelAndView mav = new ModelAndView("faStatistics/unlawfulFishing/illegalShipInfo/spiViewModal"); + spi = unlawfulFishingService.selectShipProcessInfo(spi.getPrKey()); + spi.setHistoryList(unlawfulFishingService.selectShipProcessInfoHistory(spi.getPrKey())); + mav.addObject("processInfo", spi); + IllegalShipInfo shipInfo = unlawfulFishingService.selectIllegalShipInfo(spi.getFbKey()); + mav.addObject("shipInfo", shipInfo); + mav.addObject("crackdownInfo", unlawfulFishingService.selectCrackdownInfo(shipInfo.getCdsKey())); + + AccessConfig accessConfig = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/unlawfulFishing/shipProcessInfo").get(0); + mav.addObject("accessAuth", accessConfig.getAccessAuth()); + mav.addObject("mgtOrganList", loginUser.getDownOrganCdList()); + mav.addObject("userSeq", loginUser.getUserSeq()); + return mav; + } + + @PostMapping("/saveShipProcessInfo") + public Integer saveShipProcessInfo(@AuthenticationPrincipal UserInfo loginUser, ShipProcessInfo processInfo){ + processInfo.setWrtDt(LocalDateTime.now()); + return unlawfulFishingService.saveShipProcessInfo(processInfo); + } @GetMapping("/illegalShipSailor") public ModelAndView illegalShipSailorPage(@AuthenticationPrincipal UserInfo loginUser, UnlawfulFishingParam params){ diff --git a/src/main/java/com/dbnt/faisp/main/faStatistics/unlawfulFishing/mapper/UnlawfulFishingMapper.java b/src/main/java/com/dbnt/faisp/main/faStatistics/unlawfulFishing/mapper/UnlawfulFishingMapper.java index 975e772b..b3644aeb 100644 --- a/src/main/java/com/dbnt/faisp/main/faStatistics/unlawfulFishing/mapper/UnlawfulFishingMapper.java +++ b/src/main/java/com/dbnt/faisp/main/faStatistics/unlawfulFishing/mapper/UnlawfulFishingMapper.java @@ -3,6 +3,7 @@ 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.CrackdownInfo; import com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.fishingBoat.IllegalShipInfo; +import com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.processResult.ShipProcessInfo; import org.apache.ibatis.annotations.Mapper; import java.util.List; @@ -19,4 +20,8 @@ public interface UnlawfulFishingMapper { List selectIllegalShipInfoList(UnlawfulFishingParam params); Integer selectIllegalShipInfoListCnt(UnlawfulFishingParam params); + + List selectShipProcessInfoList(UnlawfulFishingParam params); + + Integer selectShipProcessInfoListCnt(UnlawfulFishingParam params); } diff --git a/src/main/java/com/dbnt/faisp/main/faStatistics/unlawfulFishing/model/processResult/ShipProcessInfo.java b/src/main/java/com/dbnt/faisp/main/faStatistics/unlawfulFishing/model/processResult/ShipProcessInfo.java index 7dde3dd3..58a2f819 100644 --- a/src/main/java/com/dbnt/faisp/main/faStatistics/unlawfulFishing/model/processResult/ShipProcessInfo.java +++ b/src/main/java/com/dbnt/faisp/main/faStatistics/unlawfulFishing/model/processResult/ShipProcessInfo.java @@ -28,41 +28,12 @@ public class ShipProcessInfo extends ProcessResultBaseEntity { @Column(name = "pr_key") private Integer prKey; - @Column(name = "cds_key") - private Integer cdsKey; + @Column(name = "fb_key") + private Integer fbKey; @Column(name="status") private String status; @Transient - @DateTimeFormat(pattern = "yyyy-MM-dd") - private LocalDateTime updDt; - @Transient - private CrackdownStatus crackdownStatus; - @Transient - private List violationList; - @Transient - private FishingBoat fishingBoat; - @Transient - private String boatNameKr; - - @Transient - private Integer fbKey; - @Transient - private String processStatusEtc; - @Transient - private String executionDetailEtc; - @Transient - private List crackdownStatusList; - @Transient - private List fishingBoatList; - - @Transient - private String caseNum; - @Transient - private String crackdownPolice; - @Transient - private Integer year; - @Transient - private String violation; + private List historyList; } diff --git a/src/main/java/com/dbnt/faisp/main/faStatistics/unlawfulFishing/repository/ShipProcessInfoHistoryRepository.java b/src/main/java/com/dbnt/faisp/main/faStatistics/unlawfulFishing/repository/ShipProcessInfoHistoryRepository.java index 5eca28be..77e61032 100644 --- a/src/main/java/com/dbnt/faisp/main/faStatistics/unlawfulFishing/repository/ShipProcessInfoHistoryRepository.java +++ b/src/main/java/com/dbnt/faisp/main/faStatistics/unlawfulFishing/repository/ShipProcessInfoHistoryRepository.java @@ -7,7 +7,6 @@ import java.util.List; import java.util.Optional; public interface ShipProcessInfoHistoryRepository extends JpaRepository { - Optional findTopByPrKeyOrderByVersionNoDesc(Integer prKey); - List findByPrKey(Integer prKey); - + Optional findTop1ByPrKeyOrderByVersionNoDesc(Integer prKey); + List findByPrKeyOrderByVersionNoDesc(Integer prKey); } diff --git a/src/main/java/com/dbnt/faisp/main/faStatistics/unlawfulFishing/repository/ShipProcessInfoRepository.java b/src/main/java/com/dbnt/faisp/main/faStatistics/unlawfulFishing/repository/ShipProcessInfoRepository.java index d5a2ab95..5e889efb 100644 --- a/src/main/java/com/dbnt/faisp/main/faStatistics/unlawfulFishing/repository/ShipProcessInfoRepository.java +++ b/src/main/java/com/dbnt/faisp/main/faStatistics/unlawfulFishing/repository/ShipProcessInfoRepository.java @@ -6,6 +6,6 @@ import org.springframework.data.jpa.repository.JpaRepository; import java.util.Optional; public interface ShipProcessInfoRepository extends JpaRepository { - Optional findByCdsKey(Integer cdsKey); + Optional findByFbKey(Integer fbKey); Optional findByPrKey(Integer prKey); } diff --git a/src/main/java/com/dbnt/faisp/main/faStatistics/unlawfulFishing/service/UnlawfulFishingService.java b/src/main/java/com/dbnt/faisp/main/faStatistics/unlawfulFishing/service/UnlawfulFishingService.java index c0966abd..031b9d05 100644 --- a/src/main/java/com/dbnt/faisp/main/faStatistics/unlawfulFishing/service/UnlawfulFishingService.java +++ b/src/main/java/com/dbnt/faisp/main/faStatistics/unlawfulFishing/service/UnlawfulFishingService.java @@ -6,6 +6,7 @@ import com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.fishingBoat.Fishin import com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.fishingBoat.IllegalShipInfo; import com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.fishingBoat.IllegalShipInfoHistory; import com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.processResult.ShipProcessInfo; +import com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.processResult.ShipProcessInfoHistory; import com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.sailor.IllegalShipSailor; import com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.sailor.Sailor; import com.dbnt.faisp.main.faStatistics.unlawfulFishing.mapper.UnlawfulFishingMapper; @@ -167,6 +168,10 @@ public class UnlawfulFishingService { return spiRepository.findByPrKey(prKey).orElse(new ShipProcessInfo()); } + public List selectShipProcessInfoHistory(Integer prKey) { + return spihRepository.findByPrKeyOrderByVersionNoDesc(prKey); + } + public IllegalShipSailor selectIllegalShipSailor(Integer sailorKey) { return issRepository.findBySailorKey(sailorKey).orElse(new IllegalShipSailor()); } @@ -207,4 +212,24 @@ public class UnlawfulFishingService { public Integer selectIllegalShipInfoListCnt(UnlawfulFishingParam params) { return unlawfulFishingMapper.selectIllegalShipInfoListCnt(params); } + + @Transactional + public Integer saveShipProcessInfo(ShipProcessInfo processInfo) { + Integer prKey = spiRepository.save(processInfo).getPrKey(); + if(!processInfo.getStatus().equals("DST001")){ + ShipProcessInfoHistory lastHistory = spihRepository.findTop1ByPrKeyOrderByVersionNoDesc(prKey).orElse(null); + ShipProcessInfoHistory spiHistory = new ShipProcessInfoHistory(); + BeanUtils.copyProperties(processInfo, spiHistory); + spiHistory.setVersionNo(lastHistory==null?1:lastHistory.getVersionNo()+1); + spihRepository.save(spiHistory); + } + return prKey; + } + + public List selectShipProcessInfoList(UnlawfulFishingParam params) { + return unlawfulFishingMapper.selectShipProcessInfoList(params); + } + public Integer selectShipProcessInfoListCnt(UnlawfulFishingParam params) { + return unlawfulFishingMapper.selectShipProcessInfoListCnt(params); + } } diff --git a/src/main/resources/mybatisMapper/UnlawfulFishingMapper.xml b/src/main/resources/mybatisMapper/UnlawfulFishingMapper.xml index 0dbe6100..0e55b205 100644 --- a/src/main/resources/mybatisMapper/UnlawfulFishingMapper.xml +++ b/src/main/resources/mybatisMapper/UnlawfulFishingMapper.xml @@ -169,4 +169,11 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/faStatistics/unlawfulFishing/illegalShipSelectModal.js b/src/main/resources/static/js/faStatistics/unlawfulFishing/illegalShipSelectModal.js index 6d2460fd..8229e7a4 100644 --- a/src/main/resources/static/js/faStatistics/unlawfulFishing/illegalShipSelectModal.js +++ b/src/main/resources/static/js/faStatistics/unlawfulFishing/illegalShipSelectModal.js @@ -3,6 +3,23 @@ $(document).on('click', '#selectIllegalShipInfoBtn', function (){ getIsiSelectModal(null); }) +$(document).on('click', '.isiTr', function (){ + $(".isiCheckbox").prop('checked', false) + $(this).find('.isiCheckbox').prop('checked', true) +}) + +$(document).on('click', '#isiSelectBtn', function (){ + const selectedCheckbox = $(".isiCheckbox:checked") + if(selectedCheckbox.length>0){ + const editForm = $("#spiEditForm") + editForm.find("#fbKey").val(selectedCheckbox.attr('data-fbkey')) + editForm.find("#boatNameKr").val(selectedCheckbox.attr('data-boatnamekr')) + $("#isiSelectModal").modal('hide'); + }else{ + alert("대상을 선택해주세요.") + } +}) + function getIsiSelectModal(){ $.ajax({ url: '/unlawfulFishing/isiSelectModal', diff --git a/src/main/resources/static/js/faStatistics/unlawfulFishing/shipProcessInfo.js b/src/main/resources/static/js/faStatistics/unlawfulFishing/shipProcessInfo.js index 4faf03b8..1642ea28 100644 --- a/src/main/resources/static/js/faStatistics/unlawfulFishing/shipProcessInfo.js +++ b/src/main/resources/static/js/faStatistics/unlawfulFishing/shipProcessInfo.js @@ -1,8 +1,34 @@ +$(function(){ + $(".dateSelector").datepicker({ + format: "yyyy-mm-dd", + language: "ko", + autoclose: true + }); +}) + $(document).on('click', '#addShipProcessInfoBtn', function (){ getSpiEditModal(null); }) +$(document).on('change', '.oxSelector', function (){ + childInputStateChange(Number(this.value), $(this).parent().find("input,select").slice(1)); +}) + +$(document).on('change', '#directHandoverSelector', function (){ + childInputStateChange(Number(this.value), $("#directHandoverDiv").find("input")) +}) + +$(document).on('change', '#offenseSelector', function (){ + childInputStateChange(Number(this.value), $("#offenseIllegalWasteQuantity")) + childInputStateChange(Number(this.value), $("#offenseQuantity")) + childInputStateChange(Number(this.value), $("#offenseAmount")) +}) + +$(document).on('click', '.saveEditInfoBtn', function (){ + saveShipProcessInfo($(this).attr("data-status")) +}) + function getSpiEditModal(prKey){ $.ajax({ url: '/unlawfulFishing/spiEditModal', @@ -23,4 +49,52 @@ function getSpiEditModal(prKey){ ajaxErrorAction(e); } }); +} +function childInputStateChange(selectorValue, inputs){ + switch (selectorValue){ + case 1: + inputs.val('').attr('disabled', 'disabled') + break; + case 2: + inputs.removeAttr('disabled') + break; + } +}function saveShipProcessInfo(status){ + if (confirm("저장하시겠습니까?")) { + if (valueCheck(status)) { + $("#infoStatus").val(status) + contentFade("in"); + const formData = new FormData($("#spiEditForm")[0]); + $.ajax({ + type : 'POST', + data : formData, + url : "/unlawfulFishing/saveShipProcessInfo", + processData: false, + contentType: false, + beforeSend: function (xhr){ + xhr.setRequestHeader($("[name='_csrf_header']").val(), $("[name='_csrf']").val()); + }, + success : function() { + alert("저장되었습니다."); + contentFade("out"); + location.reload(); + }, + error : function(xhr, status) { + alert("저장에 실패하였습니다."); + contentFade("out"); + } + }) + } + } +} + +function valueCheck(status){ + if(status === "DST007"){ + const spiEditForm = $("#spiEditForm") + if(!spiEditForm.find("#boatNameKr").val()){ + alert("어선명을 불러와주세요.") + return false; + } + } + return true; } \ No newline at end of file diff --git a/src/main/resources/templates/faStatistics/unlawfulFishing/crackdownInfo/cdiSelectModal.html b/src/main/resources/templates/faStatistics/unlawfulFishing/crackdownInfo/cdiSelectModal.html index 78df7707..0ee01c92 100644 --- a/src/main/resources/templates/faStatistics/unlawfulFishing/crackdownInfo/cdiSelectModal.html +++ b/src/main/resources/templates/faStatistics/unlawfulFishing/crackdownInfo/cdiSelectModal.html @@ -152,19 +152,19 @@