From 2b55ab57b8b92c95b76bff289df41f95da9c0e5a Mon Sep 17 00:00:00 2001 From: jiHyung Date: Tue, 8 Nov 2022 09:30:56 +0900 Subject: [PATCH 1/6] =?UTF-8?q?=EB=8B=A8=EC=86=8D=ED=98=84=ED=99=A9,=20?= =?UTF-8?q?=EC=B2=98=EB=A6=AC=ED=98=84=ED=99=A9,=20=EC=84=A0=EC=9B=90?= =?UTF-8?q?=EC=84=B8=EB=B6=80=ED=98=84=ED=99=A9=20=EC=88=98=EC=A0=95?= =?UTF-8?q?=EC=9D=B4=EB=A0=A5=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../CrackdownStatusController.java | 31 +- .../FishingBoatController.java | 9 +- .../ProcessResultController.java | 64 +- .../crackdownsStatus/SailorController.java | 11 +- .../mapper/CrackdownStatusMapper.java | 3 +- .../mapper/ProcessResultMapper.java | 2 +- .../crackdownStatus/CrackdownStatus.java | 83 ++ .../CrackdownStatusBaseEntity.java} | 67 +- .../CrackdownStatusVersion.java | 36 + .../model/processResult/ProcessResult.java | 51 + .../ProcessResultBaseEntity.java} | 36 +- .../processResult/ProcessResultVersion.java | 51 + .../crackdownsStatus/model/sailor/Sailor.java | 5 +- .../model/sailor/SailorVersion.java | 6 +- .../repository/CrackdownStatusRepository.java | 2 +- .../CrackdownStatusVersionRepository.java | 14 + .../repository/ProcessResultRepository.java | 2 +- .../ProcessResultVersionRepository.java | 14 + .../repository/SailorVersionRepository.java | 2 +- .../service/CrackdownStatusService.java | 58 +- .../service/FishingBoatService.java | 4 +- .../service/ProcessResultService.java | 89 +- .../service/SailorService.java | 5 +- .../static/js/faStatistics/crackdownStatus.js | 51 + .../static/js/faStatistics/processResult.js | 133 ++- .../static/js/faStatistics/sailor.js | 31 +- .../crackdownStatusHistoryDetail.html | 143 +++ .../crackdownStatusHistoryViewModal.html | 185 ++++ .../crackdownStatusViewModal.html | 959 +++++++++--------- .../processResult/processResult.html | 7 + .../processResult/processResultAddModal.html | 91 ++ .../processResult/processResultEditModal.html | 8 +- .../processResultHistoryDetail.html | 67 ++ .../processResultHistoryViewModal.html | 123 +++ .../processResult/processResultViewModal.html | 268 ++--- .../templates/faStatistics/sailor/sailor.html | 1 - .../sailor/sailorHistoryViewModal.html | 179 ++-- .../faStatistics/sailor/sailorViewModal.html | 2 +- 38 files changed, 2053 insertions(+), 840 deletions(-) create mode 100644 src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/model/crackdownStatus/CrackdownStatus.java rename src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/model/{CrackdownStatus.java => crackdownStatus/CrackdownStatusBaseEntity.java} (66%) create mode 100644 src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/model/crackdownStatus/CrackdownStatusVersion.java create mode 100644 src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/model/processResult/ProcessResult.java rename src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/model/{ProcessResult.java => processResult/ProcessResultBaseEntity.java} (78%) create mode 100644 src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/model/processResult/ProcessResultVersion.java create mode 100644 src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/repository/CrackdownStatusVersionRepository.java create mode 100644 src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/repository/ProcessResultVersionRepository.java create mode 100644 src/main/resources/templates/faStatistics/crackdownStatus/crackdownStatusHistoryDetail.html create mode 100644 src/main/resources/templates/faStatistics/crackdownStatus/crackdownStatusHistoryViewModal.html create mode 100644 src/main/resources/templates/faStatistics/processResult/processResultAddModal.html create mode 100644 src/main/resources/templates/faStatistics/processResult/processResultHistoryDetail.html create mode 100644 src/main/resources/templates/faStatistics/processResult/processResultHistoryViewModal.html diff --git a/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/CrackdownStatusController.java b/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/CrackdownStatusController.java index f07acefe..125e301a 100644 --- a/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/CrackdownStatusController.java +++ b/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/CrackdownStatusController.java @@ -1,13 +1,12 @@ package com.dbnt.faisp.main.faStatistics.crackdownsStatus; import com.dbnt.faisp.main.authMgt.service.AuthMgtService; -import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.CrackdownStatus; +import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.crackdownStatus.CrackdownStatus; import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.FishingBoat; -import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.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.model.crackdownStatus.CrackdownStatusVersion; +import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.processResult.ProcessResult; +import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.processResult.ProcessResultVersion; +import com.dbnt.faisp.main.faStatistics.crackdownsStatus.repository.*; import com.dbnt.faisp.main.faStatistics.crackdownsStatus.service.CrackdownStatusService; import com.dbnt.faisp.main.userInfo.model.UserInfo; import lombok.RequiredArgsConstructor; @@ -101,6 +100,26 @@ public class CrackdownStatusController { return mav; } + @GetMapping("/crackdownStatus/crackdownStatusHistoryViewModal") + public ModelAndView crackdownStatusHistoryViewModal(@AuthenticationPrincipal UserInfo loginUser, CrackdownStatus crackdownStatus){ + ModelAndView mav = new ModelAndView("faStatistics/crackdownStatus/crackdownStatusHistoryViewModal"); + List crackdownStatusVersionList = crackdownStatusService.selectCrackdownStatusVersionList(crackdownStatus.getCdsKey()); + + mav.addObject("crackdownStatusVersionList", crackdownStatusVersionList); + mav.addObject("crackdownStatus", crackdownStatus); + return mav; + } + + @GetMapping("/crackdownStatus/crackdownStatusHistoryDetail") + public ModelAndView crackdownStatusHistoryDetail(@AuthenticationPrincipal UserInfo loginUser, CrackdownStatusVersion crackdownStatusVersion){ + ModelAndView mav = new ModelAndView("faStatistics/crackdownStatus/crackdownStatusHistoryDetail"); + + crackdownStatusVersion = crackdownStatusService.selectCrackdownStatusVersion(crackdownStatusVersion.getVersionNo(), crackdownStatusVersion.getCdsKey()); + + mav.addObject("crackdownStatusVersion", crackdownStatusVersion); + return mav; + } + @PostMapping("/crackdownStatus/saveCrackdownStatus") public Integer saveCrackdownStatus(@AuthenticationPrincipal UserInfo loginUser, CrackdownStatus crackdownStatus, 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 c698263d..e31ac942 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 @@ -2,14 +2,10 @@ package com.dbnt.faisp.main.faStatistics.crackdownsStatus; import com.dbnt.faisp.main.authMgt.service.AuthMgtService; import com.dbnt.faisp.main.codeMgt.service.CodeMgtService; -import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.CrackdownStatus; +import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.crackdownStatus.CrackdownStatus; import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.FishingBoat; -import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.ProcessResult; -import com.dbnt.faisp.main.faStatistics.crackdownsStatus.repository.CrackdownStatusRepository; -import com.dbnt.faisp.main.faStatistics.crackdownsStatus.repository.FishingBoatRepository; -import com.dbnt.faisp.main.faStatistics.crackdownsStatus.repository.ViolationRepository; +import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.processResult.ProcessResult; import com.dbnt.faisp.main.faStatistics.crackdownsStatus.service.FishingBoatService; -import com.dbnt.faisp.main.faStatistics.crackdownsStatus.service.ProcessResultService; import com.dbnt.faisp.main.userInfo.model.UserInfo; import lombok.RequiredArgsConstructor; import org.springframework.security.core.annotation.AuthenticationPrincipal; @@ -20,7 +16,6 @@ import org.springframework.web.bind.annotation.RestController; import org.springframework.web.servlet.ModelAndView; import java.time.LocalDateTime; -import java.util.List; @RestController @RequiredArgsConstructor diff --git a/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/ProcessResultController.java b/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/ProcessResultController.java index 4d8a6168..14f6a75b 100644 --- a/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/ProcessResultController.java +++ b/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/ProcessResultController.java @@ -1,19 +1,17 @@ package com.dbnt.faisp.main.faStatistics.crackdownsStatus; import com.dbnt.faisp.main.authMgt.service.AuthMgtService; -import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.CrackdownStatus; +import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.crackdownStatus.CrackdownStatus; import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.FishingBoat; -import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.ProcessResult; +import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.processResult.ProcessResult; +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.repository.*; -import com.dbnt.faisp.main.faStatistics.crackdownsStatus.service.CrackdownStatusService; import com.dbnt.faisp.main.faStatistics.crackdownsStatus.service.ProcessResultService; 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.bind.annotation.*; import org.springframework.web.servlet.ModelAndView; import java.time.LocalDateTime; @@ -90,6 +88,58 @@ public class ProcessResultController { return mav; } + @GetMapping("/processResult/processResultHistoryViewModal") + public ModelAndView processResultHistoryViewModal(@AuthenticationPrincipal UserInfo loginUser, ProcessResult processResult){ + ModelAndView mav = new ModelAndView("faStatistics/processResult/processResultHistoryViewModal"); + List processReulstVersionList = processResultService.selectProcessResultVersionList(processResult.getPrKey()); + + mav.addObject("processReulstVersionList", processReulstVersionList); + mav.addObject("processResult", processResult); + return mav; + } + + @GetMapping("/processResult/processResultHistoryDetail") + public ModelAndView processResultHistoryDetail(@AuthenticationPrincipal UserInfo loginUser, ProcessResultVersion processResultVersion){ + ModelAndView mav = new ModelAndView("faStatistics/processResult/processResultHistoryDetail"); + + Integer cdsKey = processResultVersion.getCdsKey(); + Integer fbKey = processResultVersion.getFbKey(); + + processResultVersion = processResultService.selectProcessResultVersion(processResultVersion.getVersionNo(), processResultVersion.getPrKey()); + processResultVersion.setFishingBoat(fishingBoatRepository.findByFbKey(fbKey).orElse(null)); + processResultVersion.setCrackdownStatus(crackdownStatusRepository.findByCdsKey(cdsKey).orElse(null)); + processResultVersion.setViolationList(violationRepository.findByFbKey(fbKey)); + + mav.addObject("processResultVersion", processResultVersion); + return mav; + } + + @GetMapping("/processResult/processResultAddModal") + public ModelAndView sailorAddModal(@AuthenticationPrincipal UserInfo loginUser, ProcessResult processResult){ + ModelAndView mav = new ModelAndView("faStatistics/processResult/processResultAddModal"); + + processResult.setCrackdownStatusList(crackdownStatusRepository.findAll()); + + processResult.setWrtOrgan(loginUser.getOgCd()); + processResult.setWrtUserNm(loginUser.getUserNm()); + processResult.setWrtDt(LocalDateTime.now()); + + mav.addObject("processResult", processResult); + return mav; + } + + @PostMapping("/processResult/getProcessResult") + public ProcessResult getProcessResult(@AuthenticationPrincipal UserInfo loginUser, ProcessResult processResult){ + processResult = processResultRepository.findByCdsKey(processResult.getCdsKey()).orElse(null); + processResult.setCrackdownStatus(crackdownStatusRepository.findByCdsKey(processResult.getCdsKey()).orElse(null)); + processResult.setFishingBoat(fishingBoatRepository.findByCdsKey(processResult.getCdsKey()).orElse(null)); + + processResult.setWrtOrgan(loginUser.getOgCd()); + processResult.setWrtUserNm(loginUser.getUserNm()); + processResult.setWrtDt(LocalDateTime.now()); + return processResult; + } + @PostMapping("/processResult/saveProcessResult") public Integer saveProcessResult(@AuthenticationPrincipal UserInfo loginUser, CrackdownStatus crackdownStatus, diff --git a/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/SailorController.java b/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/SailorController.java index 7d03aca4..0cfde544 100644 --- a/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/SailorController.java +++ b/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/SailorController.java @@ -1,7 +1,7 @@ package com.dbnt.faisp.main.faStatistics.crackdownsStatus; import com.dbnt.faisp.main.authMgt.service.AuthMgtService; -import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.CrackdownStatus; +import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.crackdownStatus.CrackdownStatus; import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.FishingBoat; import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.sailor.Sailor; import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.sailor.SailorVersion; @@ -74,6 +74,7 @@ public class SailorController { List sailorVersionList = sailorService.selectSailorVersionList(sailor.getSailorKey()); mav.addObject("sailorVersionList", sailorVersionList); + mav.addObject("sailor", sailor); return mav; } @@ -81,8 +82,12 @@ public class SailorController { public ModelAndView sailorHistoryDetail(@AuthenticationPrincipal UserInfo loginUser, SailorVersion sailorVersion){ ModelAndView mav = new ModelAndView("faStatistics/sailor/sailorHistoryDetail"); - sailorVersion = sailorService.selectSailorVersion(sailorVersion.getVersionNo()); - sailorVersion.setFishingBoat(fishingBoatRepository.findByFbKey(7).orElse(null)); + Integer cdsKey = sailorVersion.getCdsKey(); + Integer fbKey = sailorVersion.getFbKey(); + + sailorVersion = sailorService.selectSailorVersion(sailorVersion.getVersionNo(), sailorVersion.getSailorKey()); + sailorVersion.setFishingBoat(fishingBoatRepository.findByFbKey(fbKey).orElse(null)); + sailorVersion.setCrackdownStatus(crackdownStatusRepository.findByCdsKey(cdsKey).orElse(null)); mav.addObject("sailorVersion", sailorVersion); return mav; diff --git a/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/mapper/CrackdownStatusMapper.java b/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/mapper/CrackdownStatusMapper.java index 02f41c33..27846bf2 100644 --- a/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/mapper/CrackdownStatusMapper.java +++ b/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/mapper/CrackdownStatusMapper.java @@ -1,7 +1,6 @@ package com.dbnt.faisp.main.faStatistics.crackdownsStatus.mapper; -import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.CrackdownStatus; -import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.ProcessResult; +import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.crackdownStatus.CrackdownStatus; import org.apache.ibatis.annotations.Mapper; import java.util.List; diff --git a/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/mapper/ProcessResultMapper.java b/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/mapper/ProcessResultMapper.java index 1832775e..e6dc1d6c 100644 --- a/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/mapper/ProcessResultMapper.java +++ b/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/mapper/ProcessResultMapper.java @@ -1,6 +1,6 @@ package com.dbnt.faisp.main.faStatistics.crackdownsStatus.mapper; -import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.ProcessResult; +import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.processResult.ProcessResult; import org.apache.ibatis.annotations.Mapper; import java.util.List; diff --git a/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/model/crackdownStatus/CrackdownStatus.java b/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/model/crackdownStatus/CrackdownStatus.java new file mode 100644 index 00000000..334aab8c --- /dev/null +++ b/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/model/crackdownStatus/CrackdownStatus.java @@ -0,0 +1,83 @@ +package com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.crackdownStatus; + +import com.dbnt.faisp.config.BaseModel; +import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.FishingBoat; +import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.Violation; +import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.processResult.ProcessResult; +import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.sailor.Sailor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import org.hibernate.annotations.DynamicInsert; +import org.hibernate.annotations.DynamicUpdate; +import org.springframework.format.annotation.DateTimeFormat; + +import javax.persistence.*; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.util.List; + +@Getter +@Setter +@Entity +@NoArgsConstructor +@DynamicInsert +@DynamicUpdate +@Table(name = "crackdown_status") +public class CrackdownStatus extends CrackdownStatusBaseEntity { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "cds_key") + private Integer cdsKey; + + @Transient + private List violationList; + @Transient + private FishingBoat fishingBoat; + @Transient + private ProcessResult processResult; + @Transient + private List sailorList; + + @Transient + private String crackdownPoliceEtc; + @Transient + private String crackdownBoatEtc; + + @Transient + private Integer fbKey; + + @Transient + private Integer restrictionCaptin; + @Transient + private Integer notRestrictionCaptin; + @Transient + private Integer restrictionMate; + @Transient + private Integer notRestrictionMate; + @Transient + private Integer restrictionWarden; + @Transient + private Integer notRestrictionWarden; + @Transient + private Integer restrictionSailor; + @Transient + private Integer notRestrictionSailor; + @Transient + private Integer restrictionTotal; + @Transient + private Integer notRestrictionTotal; + @Transient + private Integer unlicensedOperationTotal; + @Transient + private Integer specificImpossibilityTotal; + @Transient + private Integer eezTotal; + @Transient + private Integer invasionTerritorialWatersTotal; + @Transient + private List violationDeleteKeyList; + @Transient + private List sailorDeleteKeyList; +} diff --git a/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/model/CrackdownStatus.java b/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/model/crackdownStatus/CrackdownStatusBaseEntity.java similarity index 66% rename from src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/model/CrackdownStatus.java rename to src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/model/crackdownStatus/CrackdownStatusBaseEntity.java index ae698dc0..f1c3e034 100644 --- a/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/model/CrackdownStatus.java +++ b/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/model/crackdownStatus/CrackdownStatusBaseEntity.java @@ -1,6 +1,9 @@ -package com.dbnt.faisp.main.faStatistics.crackdownsStatus.model; +package com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.crackdownStatus; import com.dbnt.faisp.config.BaseModel; +import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.FishingBoat; +import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.Violation; +import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.processResult.ProcessResult; import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.sailor.Sailor; import lombok.Getter; import lombok.NoArgsConstructor; @@ -16,17 +19,9 @@ import java.util.List; @Getter @Setter -@Entity @NoArgsConstructor -@DynamicInsert -@DynamicUpdate -@Table(name = "crackdown_status") -public class CrackdownStatus extends BaseModel { - - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - @Column(name = "cds_key") - private Integer cdsKey; +@MappedSuperclass +public class CrackdownStatusBaseEntity extends BaseModel { @Column(name = "case_num") private String caseNum; @@ -130,54 +125,4 @@ public class CrackdownStatus extends BaseModel { @Column(name = "wrt_dt") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm") private LocalDateTime wrtDt; - - @Transient - private List violationList; - @Transient - private FishingBoat fishingBoat; - @Transient - private ProcessResult processResult; - @Transient - private List sailorList; - - @Transient - private String crackdownPoliceEtc; - @Transient - private String crackdownBoatEtc; - - @Transient - private Integer fbKey; - - @Transient - private Integer restrictionCaptin; - @Transient - private Integer notRestrictionCaptin; - @Transient - private Integer restrictionMate; - @Transient - private Integer notRestrictionMate; - @Transient - private Integer restrictionWarden; - @Transient - private Integer notRestrictionWarden; - @Transient - private Integer restrictionSailor; - @Transient - private Integer notRestrictionSailor; - @Transient - private Integer restrictionTotal; - @Transient - private Integer notRestrictionTotal; - @Transient - private Integer unlicensedOperationTotal; - @Transient - private Integer specificImpossibilityTotal; - @Transient - private Integer eezTotal; - @Transient - private Integer invasionTerritorialWatersTotal; - @Transient - private List violationDeleteKeyList; - @Transient - private List sailorDeleteKeyList; } diff --git a/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/model/crackdownStatus/CrackdownStatusVersion.java b/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/model/crackdownStatus/CrackdownStatusVersion.java new file mode 100644 index 00000000..aa57d3ca --- /dev/null +++ b/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/model/crackdownStatus/CrackdownStatusVersion.java @@ -0,0 +1,36 @@ +package com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.crackdownStatus; + +import lombok.*; +import org.hibernate.annotations.DynamicInsert; +import org.hibernate.annotations.DynamicUpdate; + +import javax.persistence.*; +import java.io.Serializable; + +@Getter +@Setter +@Entity +@NoArgsConstructor +@DynamicInsert +@DynamicUpdate +@Table(name = "crackdown_status_version") +@IdClass(CrackdownStatusVersion.CrackdownStatusVersionId.class) +public class CrackdownStatusVersion extends CrackdownStatusBaseEntity { + + @Id + @Column(name = "cds_key") + private Integer cdsKey; + + @Id + @Column(name = "version_no") + private Integer versionNo; + + @Embeddable + @Data + @NoArgsConstructor + @AllArgsConstructor + public static class CrackdownStatusVersionId implements Serializable { + private Integer cdsKey; + private Integer versionNo; + } +} diff --git a/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/model/processResult/ProcessResult.java b/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/model/processResult/ProcessResult.java new file mode 100644 index 00000000..e186ecc9 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/model/processResult/ProcessResult.java @@ -0,0 +1,51 @@ +package com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.processResult; + +import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.crackdownStatus.CrackdownStatus; +import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.FishingBoat; +import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.Violation; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import org.hibernate.annotations.DynamicInsert; +import org.hibernate.annotations.DynamicUpdate; + +import javax.persistence.*; +import java.util.List; + +@Getter +@Setter +@Entity +@NoArgsConstructor +@DynamicInsert +@DynamicUpdate +@Table(name = "process_result") +public class ProcessResult extends ProcessResultBaseEntity { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "pr_key") + private Integer prKey; + + @Column(name = "cds_key") + private Integer cdsKey; + + @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; +} diff --git a/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/model/ProcessResult.java b/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/model/processResult/ProcessResultBaseEntity.java similarity index 78% rename from src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/model/ProcessResult.java rename to src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/model/processResult/ProcessResultBaseEntity.java index 48b8620f..96f76574 100644 --- a/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/model/ProcessResult.java +++ b/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/model/processResult/ProcessResultBaseEntity.java @@ -1,34 +1,20 @@ -package com.dbnt.faisp.main.faStatistics.crackdownsStatus.model; +package com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.processResult; import com.dbnt.faisp.config.BaseModel; import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; -import org.hibernate.annotations.DynamicInsert; -import org.hibernate.annotations.DynamicUpdate; import org.springframework.format.annotation.DateTimeFormat; import javax.persistence.*; import java.time.LocalDate; import java.time.LocalDateTime; -import java.util.List; @Getter @Setter -@Entity +@MappedSuperclass @NoArgsConstructor -@DynamicInsert -@DynamicUpdate -@Table(name = "process_result") -public class ProcessResult extends BaseModel { - - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - @Column(name = "pr_key") - private Integer prKey; - - @Column(name = "cds_key") - private Integer cdsKey; +public class ProcessResultBaseEntity extends BaseModel { @Column(name = "process_status") private String processStatus; @@ -134,20 +120,4 @@ public class ProcessResult extends BaseModel { @Column(name = "wrt_dt") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm") private LocalDateTime wrtDt; - - @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; } diff --git a/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/model/processResult/ProcessResultVersion.java b/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/model/processResult/ProcessResultVersion.java new file mode 100644 index 00000000..a37a5a84 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/model/processResult/ProcessResultVersion.java @@ -0,0 +1,51 @@ +package com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.processResult; + +import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.FishingBoat; +import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.Violation; +import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.crackdownStatus.CrackdownStatus; +import lombok.*; +import org.hibernate.annotations.DynamicInsert; +import org.hibernate.annotations.DynamicUpdate; + +import javax.persistence.*; +import java.io.Serializable; +import java.util.List; + +@Getter +@Setter +@Entity +@NoArgsConstructor +@DynamicInsert +@DynamicUpdate +@Table(name = "process_result_version") +@IdClass(ProcessResultVersion.ProcessResultVersionId.class) +public class ProcessResultVersion extends ProcessResultBaseEntity { + + @Id + @Column(name = "pr_key") + private Integer prKey; + + @Id + @Column(name = "version_no") + private Integer versionNo; + + @Embeddable + @Data + @NoArgsConstructor + @AllArgsConstructor + public static class ProcessResultVersionId implements Serializable { + private Integer prKey; + private Integer versionNo; + } + + @Transient + private Integer cdsKey; + @Transient + private Integer fbKey; + @Transient + private CrackdownStatus crackdownStatus; + @Transient + private FishingBoat fishingBoat; + @Transient + private List violationList; +} diff --git a/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/model/sailor/Sailor.java b/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/model/sailor/Sailor.java index 72338f97..ac75db41 100644 --- a/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/model/sailor/Sailor.java +++ b/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/model/sailor/Sailor.java @@ -1,9 +1,8 @@ package com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.sailor; -import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.CrackdownStatus; +import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.crackdownStatus.CrackdownStatus; import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.FishingBoat; import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.Violation; -import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.sailor.SailorBaseEntity; import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; @@ -30,6 +29,8 @@ public class Sailor extends SailorBaseEntity { @Column(name = "fb_key") private Integer fbKey; + @Transient + private Integer cdsKey; @Transient private CrackdownStatus crackdownStatus; @Transient diff --git a/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/model/sailor/SailorVersion.java b/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/model/sailor/SailorVersion.java index efcfbfc4..94d26f4f 100644 --- a/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/model/sailor/SailorVersion.java +++ b/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/model/sailor/SailorVersion.java @@ -1,6 +1,6 @@ package com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.sailor; -import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.CrackdownStatus; +import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.crackdownStatus.CrackdownStatus; import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.FishingBoat; import lombok.*; import org.hibernate.annotations.DynamicInsert; @@ -41,6 +41,10 @@ public class SailorVersion extends SailorBaseEntity { @Transient private FishingBoatVersion fishingBoatVersion;*/ + @Transient + private Integer cdsKey; + @Transient + private Integer fbKey; @Transient private CrackdownStatus crackdownStatus; @Transient diff --git a/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/repository/CrackdownStatusRepository.java b/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/repository/CrackdownStatusRepository.java index 1a7efd80..1da151d2 100644 --- a/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/repository/CrackdownStatusRepository.java +++ b/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/repository/CrackdownStatusRepository.java @@ -1,6 +1,6 @@ package com.dbnt.faisp.main.faStatistics.crackdownsStatus.repository; -import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.CrackdownStatus; +import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.crackdownStatus.CrackdownStatus; import org.springframework.data.jpa.repository.JpaRepository; import java.util.Optional; diff --git a/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/repository/CrackdownStatusVersionRepository.java b/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/repository/CrackdownStatusVersionRepository.java new file mode 100644 index 00000000..fca654d1 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/repository/CrackdownStatusVersionRepository.java @@ -0,0 +1,14 @@ +package com.dbnt.faisp.main.faStatistics.crackdownsStatus.repository; + +import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.crackdownStatus.CrackdownStatusVersion; +import org.springframework.data.jpa.repository.JpaRepository; + +import java.util.List; +import java.util.Optional; + +public interface CrackdownStatusVersionRepository extends JpaRepository { + Optional findTopByCdsKeyOrderByVersionNoDesc(Integer cdsKey); + List findByCdsKey(Integer cdsKey); + + CrackdownStatusVersion findByVersionNoAndCdsKey(Integer versionNo, Integer cdsKey); +} diff --git a/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/repository/ProcessResultRepository.java b/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/repository/ProcessResultRepository.java index 36bacec9..59684819 100644 --- a/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/repository/ProcessResultRepository.java +++ b/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/repository/ProcessResultRepository.java @@ -1,6 +1,6 @@ package com.dbnt.faisp.main.faStatistics.crackdownsStatus.repository; -import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.ProcessResult; +import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.processResult.ProcessResult; import org.springframework.data.jpa.repository.JpaRepository; import java.util.Optional; diff --git a/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/repository/ProcessResultVersionRepository.java b/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/repository/ProcessResultVersionRepository.java new file mode 100644 index 00000000..ff6be265 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/repository/ProcessResultVersionRepository.java @@ -0,0 +1,14 @@ +package com.dbnt.faisp.main.faStatistics.crackdownsStatus.repository; + +import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.processResult.ProcessResultVersion; +import org.springframework.data.jpa.repository.JpaRepository; + +import java.util.List; +import java.util.Optional; + +public interface ProcessResultVersionRepository extends JpaRepository { + Optional findTopByPrKeyOrderByVersionNoDesc(Integer prKey); + List findByPrKey(Integer prKey); + + ProcessResultVersion findByVersionNoAndPrKey(Integer versionNo, Integer prKey); +} diff --git a/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/repository/SailorVersionRepository.java b/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/repository/SailorVersionRepository.java index 8baaf4ed..99ea0880 100644 --- a/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/repository/SailorVersionRepository.java +++ b/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/repository/SailorVersionRepository.java @@ -10,5 +10,5 @@ public interface SailorVersionRepository extends JpaRepository findTopBySailorKeyOrderByVersionNoDesc(Integer sailorKey); List findBySailorKey(Integer sailorKey); - SailorVersion findByVersionNo(Integer versionNo); + SailorVersion findByVersionNoAndSailorKey(Integer versionNo, Integer sailorKey); } diff --git a/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/service/CrackdownStatusService.java b/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/service/CrackdownStatusService.java index 427cda66..93776701 100644 --- a/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/service/CrackdownStatusService.java +++ b/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/service/CrackdownStatusService.java @@ -3,7 +3,10 @@ package com.dbnt.faisp.main.faStatistics.crackdownsStatus.service; import com.dbnt.faisp.config.BaseService; import com.dbnt.faisp.main.faStatistics.crackdownsStatus.mapper.CrackdownStatusMapper; -import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.CrackdownStatus; +import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.crackdownStatus.CrackdownStatus; +import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.crackdownStatus.CrackdownStatusVersion; +import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.processResult.ProcessResult; +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.Violation; import com.dbnt.faisp.main.faStatistics.crackdownsStatus.repository.*; @@ -19,6 +22,7 @@ public class CrackdownStatusService extends BaseService { private final CrackdownStatusMapper crackdownStatusMapper; private final CrackdownStatusRepository crackdownStatusRepository; + private final CrackdownStatusVersionRepository crackdownStatusVersionRepository; private final FishingBoatRepository fishingBoatRepository; private final ViolationRepository violationRepository; private final ProcessResultRepository processResultRepository; @@ -40,6 +44,14 @@ public class CrackdownStatusService extends BaseService { return savedCrackdownStatus; } + public List selectCrackdownStatusVersionList(Integer cdsKey) { + return crackdownStatusVersionRepository.findByCdsKey(cdsKey); + } + + public CrackdownStatusVersion selectCrackdownStatusVersion(Integer versionNo, Integer cdsKey) { + return crackdownStatusVersionRepository.findByVersionNoAndCdsKey(versionNo, cdsKey); + } + @Transactional public Integer saveCrackdownStatus(CrackdownStatus crackdownStatus) { if (crackdownStatus.getViolationDeleteKeyList() != null) { @@ -57,6 +69,8 @@ public class CrackdownStatusService extends BaseService { } Integer cdsKey = crackdownStatusRepository.save(crackdownStatus).getCdsKey(); + saveCrackdownStatusVersion(crackdownStatus); + if (crackdownStatus.getFishingBoat() != null) { if (crackdownStatus.getFishingBoat().getBoatMaterialEtc() != null) { crackdownStatus.getFishingBoat().setBoatMaterial(crackdownStatus.getFishingBoat().getBoatMaterialEtc()); @@ -109,4 +123,46 @@ public class CrackdownStatusService extends BaseService { return cdsKey; } + + public void saveCrackdownStatusVersion(CrackdownStatus crackdownStatus) { + CrackdownStatusVersion lastVersion = crackdownStatusVersionRepository.findTopByCdsKeyOrderByVersionNoDesc(crackdownStatus.getCdsKey()).orElse(null); + int versionNo = lastVersion==null?1:(lastVersion.getVersionNo()+1); + + CrackdownStatusVersion crackdownStatusVersion = new CrackdownStatusVersion(); + crackdownStatusVersion.setVersionNo(versionNo); + crackdownStatusVersion.setCdsKey(crackdownStatus.getCdsKey()); + crackdownStatusVersion.setCaseNum(crackdownStatus.getCaseNum()); + crackdownStatusVersion.setNapoDt(crackdownStatus.getNapoDt()); + crackdownStatusVersion.setNapoSeaPointLon(crackdownStatus.getNapoSeaPointLon()); + crackdownStatusVersion.setNapoSeaPointLat(crackdownStatus.getNapoSeaPointLat()); + crackdownStatusVersion.setNapoSeaPointDetail(crackdownStatus.getNapoSeaPointDetail()); + crackdownStatusVersion.setInvasionType(crackdownStatus.getInvasionType()); + crackdownStatusVersion.setNll(crackdownStatus.getNll()); + crackdownStatusVersion.setCaseAgency(crackdownStatus.getCaseAgency()); + crackdownStatusVersion.setCasePoliceOfficer(crackdownStatus.getCasePoliceOfficer()); + crackdownStatusVersion.setCrackdownBoat(crackdownStatus.getCrackdownBoat()); + crackdownStatusVersion.setCrackdownPolice(crackdownStatus.getCrackdownPolice()); + crackdownStatusVersion.setMmsi(crackdownStatus.getMmsi()); + crackdownStatusVersion.setFieldIvsgt(crackdownStatus.getFieldIvsgt()); + crackdownStatusVersion.setPersonDamageCnt(crackdownStatus.getPersonDamageCnt()); + crackdownStatusVersion.setPersonDamageAmount(crackdownStatus.getPersonDamageAmount()); + crackdownStatusVersion.setPersonDamageDetail(crackdownStatus.getPersonDamageDetail()); + crackdownStatusVersion.setMaterialDamageCnt(crackdownStatus.getMaterialDamageCnt()); + crackdownStatusVersion.setMaterialDamageAmount(crackdownStatus.getMaterialDamageAmount()); + crackdownStatusVersion.setMaterialDamageDetail(crackdownStatus.getMaterialDamageDetail()); + crackdownStatusVersion.setFieldIvsgtNapoDt(crackdownStatus.getFieldIvsgtNapoDt()); + crackdownStatusVersion.setFieldIvsgtReleaseDt(crackdownStatus.getFieldIvsgtReleaseDt()); + crackdownStatusVersion.setFieldIvsgtTimeTaken(crackdownStatus.getFieldIvsgtTimeTaken()); + crackdownStatusVersion.setPressurizedStartDt(crackdownStatus.getPressurizedStartDt()); + crackdownStatusVersion.setPressurizedEndDt(crackdownStatus.getPressurizedEndDt()); + crackdownStatusVersion.setDistance(crackdownStatus.getDistance()); + crackdownStatusVersion.setWrtOrgan(crackdownStatus.getWrtOrgan()); + crackdownStatusVersion.setWrtPart(crackdownStatus.getWrtPart()); + crackdownStatusVersion.setWrtUserSeq(crackdownStatus.getWrtUserSeq()); + crackdownStatusVersion.setWrtUserGrd(crackdownStatus.getWrtUserGrd()); + crackdownStatusVersion.setWrtUserNm(crackdownStatus.getWrtUserNm()); + crackdownStatusVersion.setWrtDt(crackdownStatus.getWrtDt()); + + crackdownStatusVersionRepository.save(crackdownStatusVersion); + } } 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 9d359f9b..674d9bf5 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 @@ -4,14 +4,14 @@ package com.dbnt.faisp.main.faStatistics.crackdownsStatus.service; import com.dbnt.faisp.config.BaseService; import com.dbnt.faisp.main.faStatistics.crackdownsStatus.mapper.CrackdownStatusMapper; import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.*; +import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.crackdownStatus.CrackdownStatus; +import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.processResult.ProcessResult; import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.sailor.Sailor; import com.dbnt.faisp.main.faStatistics.crackdownsStatus.repository.*; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.util.List; - @Service @RequiredArgsConstructor public class FishingBoatService extends BaseService { diff --git a/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/service/ProcessResultService.java b/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/service/ProcessResultService.java index 2ebfadf6..8b0d367b 100644 --- a/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/service/ProcessResultService.java +++ b/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/service/ProcessResultService.java @@ -2,21 +2,20 @@ package com.dbnt.faisp.main.faStatistics.crackdownsStatus.service; import com.dbnt.faisp.config.BaseService; -import com.dbnt.faisp.main.faStatistics.crackdownsStatus.mapper.CrackdownStatusMapper; import com.dbnt.faisp.main.faStatistics.crackdownsStatus.mapper.ProcessResultMapper; import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.*; +import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.crackdownStatus.CrackdownStatus; +import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.processResult.ProcessResult; +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 lombok.RequiredArgsConstructor; -import org.springframework.beans.BeanUtils; -import org.springframework.beans.BeanWrapper; -import org.springframework.beans.BeanWrapperImpl; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.util.HashSet; import java.util.List; -import java.util.Set; @Service @RequiredArgsConstructor @@ -27,6 +26,7 @@ public class ProcessResultService extends BaseService { private final FishingBoatRepository fishingBoatRepository; private final ViolationRepository violationRepository; private final ProcessResultRepository processResultRepository; + private final ProcessResultVersionRepository processResultVersionRepository; public List selectProcessResultList(ProcessResult processResult) { return processResultMapper.selectProcessResultList(processResult); @@ -40,6 +40,14 @@ public class ProcessResultService extends BaseService { return processResultRepository.findById(prKey).orElse(null); } + public List selectProcessResultVersionList(Integer prKey) { + return processResultVersionRepository.findByPrKey(prKey); + } + + public ProcessResultVersion selectProcessResultVersion(Integer versionNo, Integer prKey) { + return processResultVersionRepository.findByVersionNoAndPrKey(versionNo, prKey); + } + @Transactional public Integer saveProcessResult(ProcessResult processResult) { if (processResult.getCrackdownStatus().getViolationDeleteKeyList() != null) { @@ -50,11 +58,22 @@ public class ProcessResultService extends BaseService { processResult.setExecutionDetail(processResult.getExecutionDetailEtc()); } + Integer prKey = 0; ProcessResult existingProcessResult = processResultRepository.findByPrKey(processResult.getPrKey()).orElse(null); - Utils.copyNonNullProperties(processResult, existingProcessResult); - Integer prKey = processResultRepository.save(existingProcessResult).getPrKey(); - if (processResult.getCrackdownStatus() != null) { + if (existingProcessResult != null) { + Utils.copyNonNullProperties(processResult, existingProcessResult); + existingProcessResult.setCrackdownStatus(null); + existingProcessResult.setFishingBoat(null); + existingProcessResult.setViolationList(null); + prKey = processResultRepository.save(existingProcessResult).getPrKey(); + saveProcessResultVersion(existingProcessResult); + } else { + prKey = processResultRepository.save(processResult).getPrKey(); + saveProcessResultVersion(processResult); + } + + /*if (processResult.getCrackdownStatus() != null) { if (processResult.getCrackdownStatus().getCrackdownPoliceEtc() != null) { processResult.getCrackdownStatus().setCrackdownPolice(processResult.getCrackdownStatus().getCrackdownPoliceEtc()); } @@ -62,15 +81,15 @@ public class ProcessResultService extends BaseService { CrackdownStatus existingCrackdownStatus = crackdownStatusRepository.findByCdsKey(processResult.getCdsKey()).orElse(null); Utils.copyNonNullProperties(processResult, existingCrackdownStatus); processResult.setCrackdownStatus(crackdownStatusRepository.save(existingCrackdownStatus)); - } + }*/ - if (processResult.getFishingBoat() != null) { + /*if (processResult.getFishingBoat() != null) { FishingBoat existingFishingBoat = fishingBoatRepository.findByCdsKey(processResult.getCdsKey()).orElse(null); Utils.copyNonNullProperties(processResult, existingFishingBoat); fishingBoatRepository.save(existingFishingBoat); - } + }*/ - if (processResult.getViolationList().get(0).getViolation() != null) { + /*if (processResult.getViolationList().get(0).getViolation() != null) { Violation lastViolation = violationRepository.findTopByFbKeyOrderByViolationKeyDesc(processResult.getCrackdownStatus().getFbKey()).orElse(null); int violationKey = lastViolation==null?1:(lastViolation.getViolationKey()+1); @@ -85,8 +104,50 @@ public class ProcessResultService extends BaseService { } } violationRepository.saveAll(processResult.getViolationList()); - } + }*/ return prKey; } + + public void saveProcessResultVersion(ProcessResult processResult) { + ProcessResultVersion lastVersion = processResultVersionRepository.findTopByPrKeyOrderByVersionNoDesc(processResult.getPrKey()).orElse(null); + int versionNo = lastVersion==null?1:(lastVersion.getVersionNo()+1); + + ProcessResultVersion processResultVersion = new ProcessResultVersion(); + processResultVersion.setVersionNo(versionNo); + processResultVersion.setPrKey(processResult.getPrKey()); + processResultVersion.setProcessStatus(processResult.getProcessStatus()); + processResultVersion.setPressurizedTimeTaken(processResult.getPressurizedTimeTaken()); + processResultVersion.setWarrantReqTakeTime(processResult.getWarrantReqTakeTime()); + processResultVersion.setIsIvsgtStop(processResult.getIsIvsgtStop()); + processResultVersion.setEvictionDt(processResult.getEvictionDt()); + processResultVersion.setDirectHandoverDt(processResult.getDirectHandoverDt()); + processResultVersion.setHandoverSeaPointLon(processResult.getHandoverSeaPointLon()); + processResultVersion.setHandoverSeaPointLat(processResult.getHandoverSeaPointLat()); + processResultVersion.setHandoverSeaPointDetail(processResult.getHandoverSeaPointDetail()); + processResultVersion.setHandoverBoat(processResult.getHandoverBoat()); + processResultVersion.setMiddleTakeoverBoat(processResult.getMiddleTakeoverBoat()); + processResultVersion.setConsignmentStartDt(processResult.getConsignmentStartDt()); + processResultVersion.setConsignmentEndDt(processResult.getConsignmentEndDt()); + processResultVersion.setConfiscationDt(processResult.getConfiscationDt()); + processResultVersion.setBoatDisposalDt(processResult.getBoatDisposalDt()); + processResultVersion.setBoatDisposalType(processResult.getBoatDisposalType()); + processResultVersion.setReturnDt(processResult.getReturnDt()); + processResultVersion.setExileCnt(processResult.getExileCnt()); + processResultVersion.setFlight(processResult.getFlight()); + processResultVersion.setImmigrationOfficeName(processResult.getImmigrationOfficeName()); + processResultVersion.setImmigrationOfficeOfficerName(processResult.getImmigrationOfficeOfficerName()); + processResultVersion.setImmigrationOfficeOfficerContact(processResult.getImmigrationOfficeOfficerContact()); + processResultVersion.setSentencingCourt(processResult.getSentencingCourt()); + processResultVersion.setSentencingDetail(processResult.getSentencingDetail()); + processResultVersion.setExecutionDetail(processResult.getExecutionDetail()); + processResultVersion.setWrtOrgan(processResult.getWrtOrgan()); + processResultVersion.setWrtPart(processResult.getWrtPart()); + processResultVersion.setWrtUserSeq(processResult.getWrtUserSeq()); + processResultVersion.setWrtUserGrd(processResult.getWrtUserGrd()); + processResultVersion.setWrtUserNm(processResult.getWrtUserNm()); + processResultVersion.setWrtDt(processResult.getWrtDt()); + + processResultVersionRepository.save(processResultVersion); + } } 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 a12da3cb..ce32b85a 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 @@ -4,6 +4,7 @@ package com.dbnt.faisp.main.faStatistics.crackdownsStatus.service; import com.dbnt.faisp.config.BaseService; import com.dbnt.faisp.main.faStatistics.crackdownsStatus.mapper.SailorMapper; import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.*; +import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.crackdownStatus.CrackdownStatus; 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.*; @@ -38,8 +39,8 @@ public class SailorService extends BaseService { return sailorVersionRepository.findBySailorKey(sailorKey); } - public SailorVersion selectSailorVersion(Integer versionNo) { - return sailorVersionRepository.findByVersionNo(versionNo); + public SailorVersion selectSailorVersion(Integer versionNo, Integer sailorKey) { + return sailorVersionRepository.findByVersionNoAndSailorKey(versionNo, sailorKey); } @Transactional diff --git a/src/main/resources/static/js/faStatistics/crackdownStatus.js b/src/main/resources/static/js/faStatistics/crackdownStatus.js index d1cd082c..c856cf2a 100644 --- a/src/main/resources/static/js/faStatistics/crackdownStatus.js +++ b/src/main/resources/static/js/faStatistics/crackdownStatus.js @@ -19,6 +19,22 @@ $(document).on('click', '.tr', function (){ getCrackdownStatusViewModal($(this).data('key')); }); +$(document).on('click', '#history-tab', function (){ + getCrackdownStatusHistoryViewModal($('#cdsEditForm').find('input[name="cdsKey"]').val()); +}); + +$(document).on('click', '#crackdownStatus-tab', function (){ + getCrackdownStatusViewModal($('#cdsEditForm').find('input[name="cdsKey"]').val()); +}); + +$(document).on('click', '.version-tr', function (){ + $(this).find('input[name="versionNo"]').prop('checked', true); + const versionNo = $(this).find('input[name="versionNo"]').val(); + const cdsKey = $('#cdsEditForm').find('input[name="cdsKey"]').val(); + getCrackdownStatusHistoryDetail(versionNo, cdsKey); +}); + + $(document).on('change', 'select[name="crackdownPolice"]', function (){ dynamicOption('select[name="crackdownBoat"]', $(this).val()); }); @@ -151,12 +167,47 @@ $(document).on('click', '#cdsDownExcel', function (){ exportExcel('불법조업 불법어선 단속현황'); }); +function getCrackdownStatusHistoryDetail(versionNo, cdsKey){ + $.ajax({ + url: '/faStatistics/crackdownStatus/crackdownStatusHistoryDetail', + data: { + versionNo : versionNo, + cdsKey : cdsKey + }, + type: 'GET', + dataType:"html", + success: function(html){ + $("#historyDetailDiv").empty().append(html); + }, + error:function(){ + + } + }); +} + function getCrackdownStatusViewModal(cdsKey){ $.ajax({ url: '/faStatistics/crackdownStatus/crackdownStatusViewModal', data: {cdsKey: cdsKey}, type: 'GET', dataType:"html", + success: function(html){ + $("#cdsEditBody").empty(); + $("#crackdownStatusViewBody").empty().append(html) + $("#crackdownStatusViewModal").modal('show'); + }, + error:function(){ + + } + }); +} + +function getCrackdownStatusHistoryViewModal(cdsKey){ + $.ajax({ + url: '/faStatistics/crackdownStatus/crackdownStatusHistoryViewModal', + data: {cdsKey: cdsKey}, + type: 'GET', + dataType:"html", success: function(html){ $("#crackdownStatusViewBody").empty().append(html) $("#crackdownStatusViewModal").modal('show'); diff --git a/src/main/resources/static/js/faStatistics/processResult.js b/src/main/resources/static/js/faStatistics/processResult.js index 22b9354f..25c41eb7 100644 --- a/src/main/resources/static/js/faStatistics/processResult.js +++ b/src/main/resources/static/js/faStatistics/processResult.js @@ -1,5 +1,5 @@ $(document).on('click', '#processResultAddBtn', function () { - getProcessResultEditModal(null); + getProcessResultAddModal(null); }); $(document).on('click', '#processResultEditBtn', function () { @@ -19,6 +19,58 @@ $(document).on('click', '.tr', function (){ getProcessResultViewModal($(this).data('key')); }); +$(document).on('click', '#history-tab', function (){ + const prKey = $('#processResultEditForm').find('input[name="prKey"]').val(); + const cdsKey = $('#processResultEditForm').find('input[name="cdsKey"]').val(); + const fbKey = $('#processResultEditForm').find('input[name="fbKey"]').val(); + getProcessResultHistoryViewModal(prKey, cdsKey, fbKey); +}); + +$(document).on('click', '#processResult-tab', function (){ + getProcessResultViewModal($('#processResultEditForm').find('input[name="prKey"]').val()); +}); + +$(document).on('click', '.version-tr', function (){ + $(this).find('input[name="versionNo"]').prop('checked', true); + const versionNo = $(this).find('input[name="versionNo"]').val(); + const prKey = $('#processResultEditForm').find('input[name="prKey"]').val(); + const cdsKey = $('#processResultEditForm').find('input[name="cdsKey"]').val(); + const fbKey = $('#processResultEditForm').find('input[name="fbKey"]').val(); + getProcessResultHistoryDetail(versionNo, prKey, cdsKey, fbKey); +}); + +$(document).on('change', 'select[name="caseNum"]', function (){ + $('input[name="boatNameKr"]').val(''); + $('input[name="prKey"]').val(''); + $('input[name="cdsKey"]').val($('select[name="caseNum"] option:selected').val()); + + const formdata = new FormData($('#processResultEditForm')[0]); + + $.ajax({ + type: 'POST', + data: formdata, + url: "/faStatistics/processResult/getProcessResult", + processData: false, + contentType: false, + success: function(result) { + $('input[name="boatNameKr"]').val(result.fishingBoat.boatNameKr); + $('input[name="prKey"]').val(result.prKey); + $('input[name="sentencingCourt"]').val(result.sentencingCourt); + $('input[name="sentencingDetail"]').val(result.sentencingDetail); + $('select[name="executionDetail"]').val(result.executionDetail).prop('selected', true); + $('input[name="returnDt"]').val(result.returnDt); + $('input[name="consignmentStartDt"]').val(result.consignmentStartDt); + $('input[name="consignmentEndDt"]').val(result.consignmentEndDt); + $('input[name="confiscationDt"]').val(result.confiscationDt); + $('input[name="boatDisposalDt"]').val(result.boatDisposalDt); + $('input[name="boatDisposalDt"]').val(result.boatDisposalDt); + }, + error: function(xhr, status) { + + } + }); +}); + $(document).on('click', '#violationAddBtn', function (){ let violation = ''; commonCode.VT.forEach(function (item){ @@ -84,6 +136,26 @@ $(document).on('click', '#processResultDownExcel', function (){ exportExcel('불법조업 불법어선 처리현황'); }); +function getProcessResultHistoryDetail(versionNo, prKey, cdsKey, fbKey){ + $.ajax({ + url: '/faStatistics/processResult/processResultHistoryDetail', + data: { + versionNo : versionNo, + prKey: prKey, + cdsKey : cdsKey, + fbKey : fbKey + }, + type: 'GET', + dataType:"html", + success: function(html){ + $("#historyDetailDiv").empty().append(html); + }, + error:function(){ + + } + }); +} + function getProcessResultViewModal(prKey){ $.ajax({ url: '/faStatistics/processResult/processResultViewModal', @@ -91,6 +163,7 @@ function getProcessResultViewModal(prKey){ type: 'GET', dataType:"html", success: function(html){ + $("#processResultEditModalContent").empty(); $("#processResultViewBody").empty().append(html) $("#processResultViewModal").modal('show'); }, @@ -100,6 +173,63 @@ function getProcessResultViewModal(prKey){ }); } +function getProcessResultHistoryViewModal(prKey, cdsKey, fbKey){ + $.ajax({ + url: '/faStatistics/processResult/processResultHistoryViewModal', + data: { + prKey: prKey, + cdsKey : cdsKey, + fbKey : fbKey + }, + type: 'GET', + dataType:"html", + success: function(html){ + $("#processResultViewBody").empty().append(html) + $("#processResultViewModal").modal('show'); + }, + error:function(){ + + } + }); +} + +function getProcessResultAddModal(){ + $.ajax({ + url: '/faStatistics/processResult/processResultAddModal', + type: 'GET', + dataType:"html", + success: function(html){ + $("#processResultViewBody").empty(); + $("#processResultAddModalContent").empty().append(html); + $("#processResultAddModal").modal('show'); + + $("#consignmentStartDt").datepicker({ + format: "yyyy-mm-dd", + language: "ko" + }); + $("#consignmentEndDt").datepicker({ + format: "yyyy-mm-dd", + language: "ko" + }); + $("#returnDt").datepicker({ + format: "yyyy-mm-dd", + language: "ko" + }); + $("#confiscationDt").datepicker({ + format: "yyyy-mm-dd", + language: "ko" + }); + $("#boatDisposalDt").datepicker({ + format: "yyyy-mm-dd", + language: "ko" + }); + }, + error:function(){ + + } + }); +} + function getProcessResultEditModal(prKey){ $.ajax({ url: '/faStatistics/processResult/processResultEditModal', @@ -185,6 +315,7 @@ function saveProcessResult(saveYn){ alert("저장되었습니다."); contentFade("out"); $("#processResultEditModal").modal('hide'); + $("#processResultAddModal").modal('hide'); }, error : function(xhr, status) { alert("저장에 실패하였습니다.") diff --git a/src/main/resources/static/js/faStatistics/sailor.js b/src/main/resources/static/js/faStatistics/sailor.js index 1c366baa..5eadbe93 100644 --- a/src/main/resources/static/js/faStatistics/sailor.js +++ b/src/main/resources/static/js/faStatistics/sailor.js @@ -20,7 +20,10 @@ $(document).on('click', '.tr', function (){ }); $(document).on('click', '#history-tab', function (){ - getSailorHistoryViewModal($('#sailorEditForm').find('input[name="sailorKey"]').val()); + const sailorKey = $('#sailorEditForm').find('input[name="sailorKey"]').val(); + const cdsKey = $('#sailorEditForm').find('input[name="cdsKey"]').val(); + const fbKey = $('#sailorEditForm').find('input[name="fbKey"]').val(); + getSailorHistoryViewModal(sailorKey, cdsKey, fbKey); }); $(document).on('click', '#sailor-tab', function (){ @@ -29,7 +32,11 @@ $(document).on('click', '#sailor-tab', function (){ $(document).on('click', '.version-tr', function (){ $(this).find('input[name="versionNo"]').prop('checked', true); - getSailorHistoryDetail($(this).find('input[name="versionNo"]').val()); + const versionNo = $(this).find('input[name="versionNo"]').val(); + const sailorKey = $('#sailorEditForm').find('input[name="sailorKey"]').val(); + const cdsKey = $('#sailorEditForm').find('input[name="cdsKey"]').val(); + const fbKey = $('#sailorEditForm').find('input[name="fbKey"]').val(); + getSailorHistoryDetail(versionNo, sailorKey, cdsKey, fbKey); }); @@ -104,10 +111,15 @@ $(document).on('click', '#sailorDownExcel', function (){ exportExcel('불법조업 불법어선 처리현황'); }); -function getSailorHistoryDetail(versionNo){ +function getSailorHistoryDetail(versionNo, sailorKey, cdsKey, fbKey){ $.ajax({ url: '/faStatistics/sailor/sailorHistoryDetail', - data: {versionNo: versionNo}, + data: { + versionNo : versionNo, + sailorKey: sailorKey, + cdsKey : cdsKey, + fbKey : fbKey + }, type: 'GET', dataType:"html", success: function(html){ @@ -127,7 +139,8 @@ function getSailorViewModal(sailorKey){ type: 'GET', dataType:"html", success: function(html){ - $("#sailorViewBody").empty().append(html) + $("#sailorAddModalContent").empty(); + $("#sailorViewBody").empty().append(html); $("#sailorViewModal").modal('show'); }, error:function(){ @@ -136,10 +149,14 @@ function getSailorViewModal(sailorKey){ }); } -function getSailorHistoryViewModal(sailorKey){ +function getSailorHistoryViewModal(sailorKey, cdsKey, fbKey){ $.ajax({ url: '/faStatistics/sailor/sailorHistoryViewModal', - data: {sailorKey: sailorKey}, + data: { + sailorKey : sailorKey, + cdsKey : cdsKey, + fbKey : fbKey + }, type: 'GET', dataType:"html", success: function(html){ diff --git a/src/main/resources/templates/faStatistics/crackdownStatus/crackdownStatusHistoryDetail.html b/src/main/resources/templates/faStatistics/crackdownStatus/crackdownStatusHistoryDetail.html new file mode 100644 index 00000000..09e5b0f3 --- /dev/null +++ b/src/main/resources/templates/faStatistics/crackdownStatus/crackdownStatusHistoryDetail.html @@ -0,0 +1,143 @@ + + +
+ 나포정보 +
+
+
+ + +
+
+ + +
+ +
+ + + +
+ +
+ +
+
+
+ 특수공무집행방해 +
+
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+
+
+ 검거기관 +
+
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+
+
+ 현장조사 +
+
+ +
+ +
+ +
+ +
+ +
+ +
+
+
+ 압송 +
+
+ +
+ +
+ +
+ +
+ +
+ +
+
+ \ No newline at end of file diff --git a/src/main/resources/templates/faStatistics/crackdownStatus/crackdownStatusHistoryViewModal.html b/src/main/resources/templates/faStatistics/crackdownStatus/crackdownStatusHistoryViewModal.html new file mode 100644 index 00000000..71acac52 --- /dev/null +++ b/src/main/resources/templates/faStatistics/crackdownStatus/crackdownStatusHistoryViewModal.html @@ -0,0 +1,185 @@ + + + + + + + +
+
+ +
+
+ + \ No newline at end of file diff --git a/src/main/resources/templates/faStatistics/crackdownStatus/crackdownStatusViewModal.html b/src/main/resources/templates/faStatistics/crackdownStatus/crackdownStatusViewModal.html index 1504f9da..bd164132 100644 --- a/src/main/resources/templates/faStatistics/crackdownStatus/crackdownStatusViewModal.html +++ b/src/main/resources/templates/faStatistics/crackdownStatus/crackdownStatusViewModal.html @@ -4,487 +4,506 @@ - +