diff --git a/src/main/java/com/dbnt/faisp/config/ModalController.java b/src/main/java/com/dbnt/faisp/config/ModalController.java index 47be48f7..c436c673 100644 --- a/src/main/java/com/dbnt/faisp/config/ModalController.java +++ b/src/main/java/com/dbnt/faisp/config/ModalController.java @@ -1,7 +1,7 @@ package com.dbnt.faisp.config; 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.repository.FishingBoatRepository; import com.dbnt.faisp.main.faStatistics.crackdownsStatus.repository.ProcessResultRepository; import com.dbnt.faisp.main.faStatistics.crackdownsStatus.repository.SailorRepository; 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 dcbf837e..a2568eb6 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 600f2007..5236eb8d 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; @@ -129,54 +124,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 1ba9356c..e9ea3f57 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 430044ad..1efc7a0a 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 @@ - +