diff --git a/src/main/java/com/dbnt/faisp/faStatistics/crackdownStatus/CrackdownStatusController.java b/src/main/java/com/dbnt/faisp/faStatistics/crackdownStatus/CrackdownStatusController.java new file mode 100644 index 00000000..d8753954 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/faStatistics/crackdownStatus/CrackdownStatusController.java @@ -0,0 +1,72 @@ +package com.dbnt.faisp.faStatistics.crackdownStatus; + +import com.dbnt.faisp.authMgt.service.AuthMgtService; +import com.dbnt.faisp.faStatistics.crackdownStatus.model.CrackdownStatus; +import com.dbnt.faisp.faStatistics.crackdownStatus.model.FishingBoat; +import com.dbnt.faisp.faStatistics.crackdownStatus.model.ProcessResult; +import com.dbnt.faisp.faStatistics.crackdownStatus.service.CrackdownStatusService; +import com.dbnt.faisp.faStatistics.internationalCrimeArrest.model.InternationalCrimeArrest; +import com.dbnt.faisp.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.servlet.ModelAndView; + +import java.time.LocalDateTime; +import java.util.List; + +@RestController +@RequiredArgsConstructor +@RequestMapping("/faStatistics") +public class CrackdownStatusController { + + private final AuthMgtService authMgtService; + private final CrackdownStatusService crackdownStatusService; + + @RequestMapping("/crackdownStatus") + public ModelAndView crackdownStatus(@AuthenticationPrincipal UserInfo loginUser, CrackdownStatus crackdownStatus) { + ModelAndView mav = new ModelAndView("faStatistics/crackdownStatus/crackdownStatus"); + + //메뉴권한 확인 + String accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/faStatistics/crackdownStatus").get(0).getAccessAuth(); + + mav.addObject("accessAuth", accessAuth); + + crackdownStatus.setQueryInfo(); + List crackdownStatusList = crackdownStatusService.selectCrackdownStatusList(crackdownStatus); + + mav.addObject("crackdownStatusList", crackdownStatusList); + crackdownStatus.setContentCnt(crackdownStatusService.selectCrackdownStatusListCnt(crackdownStatus)); + crackdownStatus.setPaginationInfo(); + mav.addObject("searchParams", crackdownStatus); + return mav; + } + + @GetMapping("/crackdownStatus/crackdownStatusEditModal") + public ModelAndView crackdownStatusEditModal(@AuthenticationPrincipal UserInfo loginUser, CrackdownStatus crackdownStatus){ + ModelAndView mav = new ModelAndView("faStatistics/crackdownStatus/crackdownStatusEditModal"); + if(crackdownStatus.getCdsKey()!=null){ + crackdownStatus = crackdownStatusService.selectCrackdownStatus(crackdownStatus.getCdsKey()); + }else{ + crackdownStatus.setWrtOrgan(loginUser.getOgCd()); + crackdownStatus.setWrtNm(loginUser.getUserNm()); + crackdownStatus.setWrtDt(LocalDateTime.now()); + } + mav.addObject("crackdownStatus", crackdownStatus); + return mav; + } + + @PostMapping("/crackdownStatus/saveCrackdownStatus") + public Integer saveCrackdownStatus(@AuthenticationPrincipal UserInfo loginUser, + CrackdownStatus crackdownStatus, + FishingBoat fishingBoat, + ProcessResult processResult){ + crackdownStatus.setWrtUserSeq(loginUser.getUserSeq()); + crackdownStatus.setFishingBoat(fishingBoat); + crackdownStatus.setProcessResult(processResult); + return crackdownStatusService.saveCrackdownStatus(crackdownStatus); + } +} diff --git a/src/main/java/com/dbnt/faisp/faStatistics/crackdownStatus/mapper/CrackdownStatusMapper.java b/src/main/java/com/dbnt/faisp/faStatistics/crackdownStatus/mapper/CrackdownStatusMapper.java new file mode 100644 index 00000000..bb25e07a --- /dev/null +++ b/src/main/java/com/dbnt/faisp/faStatistics/crackdownStatus/mapper/CrackdownStatusMapper.java @@ -0,0 +1,14 @@ +package com.dbnt.faisp.faStatistics.crackdownStatus.mapper; + +import com.dbnt.faisp.faStatistics.crackdownStatus.model.CrackdownStatus; +import com.dbnt.faisp.faStatistics.internationalCrimeArrest.model.InternationalCrimeArrest; +import com.dbnt.faisp.util.ParamMap; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +@Mapper +public interface CrackdownStatusMapper { + List selectCrackdownStatusList(CrackdownStatus crackdownStatus); + Integer selectCrackdownStatusListCnt(CrackdownStatus crackdownStatus); +} diff --git a/src/main/java/com/dbnt/faisp/faStatistics/crackdownStatus/model/CaptinPhotoFile.java b/src/main/java/com/dbnt/faisp/faStatistics/crackdownStatus/model/CaptinPhotoFile.java new file mode 100644 index 00000000..93412e0b --- /dev/null +++ b/src/main/java/com/dbnt/faisp/faStatistics/crackdownStatus/model/CaptinPhotoFile.java @@ -0,0 +1,53 @@ +package com.dbnt.faisp.faStatistics.crackdownStatus.model; + +import com.dbnt.faisp.config.FileInfo; +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 +@IdClass(CaptinPhotoFile.CaptinPhotoFileId.class) +@Table(name = "captin_photo_file") +public class CaptinPhotoFile extends FileInfo { + @Id + @Column(name = "sailor_key") + private Integer sailorKey; + + @Id + @Column(name = "file_seq") + private Integer fileSeq; + + @Column(name = "orig_nm") + private String origNm; + + @Column(name = "conv_nm") + private String convNm; + + @Column(name = "file_extn") + private String fileExtn; + + @Column(name = "file_size") + private String fileSize; + + @Column(name = "save_path") + private String savePath; + + + @Embeddable + @Data + @NoArgsConstructor + @AllArgsConstructor + public static class CaptinPhotoFileId implements Serializable { + private Integer sailorKey; + private Integer fileSeq; + } + +} diff --git a/src/main/java/com/dbnt/faisp/faStatistics/crackdownStatus/model/CrackdownStatus.java b/src/main/java/com/dbnt/faisp/faStatistics/crackdownStatus/model/CrackdownStatus.java new file mode 100644 index 00000000..418b1166 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/faStatistics/crackdownStatus/model/CrackdownStatus.java @@ -0,0 +1,140 @@ +package com.dbnt.faisp.faStatistics.crackdownStatus.model; + +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.LocalDateTime; +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; + + @Column(name = "case_num") + private String caseNum; + + @Column(name = "napo_dt") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm") + private LocalDateTime napoDt; + + @Column(name = "napo_sea_point_lon") + private String napoSeaPointLon; + + @Column(name = "napo_sea_point_lat") + private String napoSeaPointLat; + + @Column(name = "napo_sea_point_detail") + private String napoSeaPointDetail; + + @Column(name = "invasion_type") + private String invasionType; + + @Column(name = "nll") + private String nll; + + @Column(name = "case_agency") + private String caseAgency; + + @Column(name = "case_police_officer") + private String casePoliceOfficer; + + @Column(name = "crackdown_boat") + private String crackdownBoat; + + @Column(name = "crackdown_police") + private String crackdownPolice; + + @Column(name = "mmsi") + private String mmsi; + + @Column(name = "field_ivsgt") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm") + private LocalDateTime fieldIvsgt; + + @Column(name = "obstr_exspd_cnt") + private Integer obstrExspdCnt; + + @Column(name = "person_damage_cnt") + private Integer personDamageCnt; + + @Column(name = "person_damage_amount") + private Integer personDamageAmount; + + @Column(name = "person_damage_detail") + private String personDamageDetail; + + @Column(name = "material_damage_cnt") + private Integer materialDamageCnt; + + @Column(name = "material_damage_amount") + private Integer materialDamageAmount; + + @Column(name = "material_damage_detail") + private String materialDamageDetail; + + @Column(name = "field_ivsgt_napo_dt") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm") + private LocalDateTime fieldIvsgtNapoDt; + + @Column(name = "field_ivsgt_release_dt") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm") + private LocalDateTime fieldIvsgtReleaseDt; + + @Column(name = "field_ivsgt_time_taken") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm") + private LocalDateTime fieldIvsgtTimeTaken; + + @Column(name = "pressurized_start_dt") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm") + private LocalDateTime pressurizedStartDt; + + @Column(name = "pressurized_end_dt") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm") + private LocalDateTime pressurizedEndDt; + + @Column(name = "distance") + private String distance; + + @Column(name = "wrt_organ") + private String wrtOrgan; + + @Column(name = "wrt_user_seq") + private Integer wrtUserSeq; + + @Column(name = "wrt_nm") + private String wrtNm; + + @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; +} diff --git a/src/main/java/com/dbnt/faisp/faStatistics/crackdownStatus/model/FishingBoat.java b/src/main/java/com/dbnt/faisp/faStatistics/crackdownStatus/model/FishingBoat.java new file mode 100644 index 00000000..9d65557b --- /dev/null +++ b/src/main/java/com/dbnt/faisp/faStatistics/crackdownStatus/model/FishingBoat.java @@ -0,0 +1,134 @@ +package com.dbnt.faisp.faStatistics.crackdownStatus.model; + +import com.dbnt.faisp.config.BaseModel; +import lombok.*; +import org.hibernate.annotations.DynamicInsert; +import org.hibernate.annotations.DynamicUpdate; +import org.springframework.format.annotation.DateTimeFormat; + +import javax.persistence.*; +import java.io.Serializable; +import java.time.LocalDateTime; + +@Getter +@Setter +@Entity +@NoArgsConstructor +@DynamicInsert +@DynamicUpdate +@Table(name = "fishing_boat") +@IdClass(FishingBoat.FishingBoatId.class) +public class FishingBoat extends BaseModel { + + @Id + @Column(name = "fb_key") + private Integer fbKey; + + @Id + @Column(name = "cds_key") + private Integer cdsKey; + + @Column(name = "boat_name_kr") + private String boatNameKr; + + @Column(name = "boat_name_cn") + private String boatNameCn; + + @Column(name = "permit_num") + private String permitNum; + + @Column(name = "nationality") + private String nationality; + + @Column(name = "ton_cnt") + private Integer tonCnt; + + @Column(name = "fishery_type") + private String fisheryType; + + @Column(name = "boat_material") + private String boatMaterial; + + @Column(name = "boat_nny_sung") + private String boatNnySung; + + @Column(name = "boat_nny_si") + private String boatNnySi; + + @Column(name = "offense_type") + private String offenseType; + + @Column(name = "offense_quantity") + private Integer offenseQuantity; + + @Column(name = "offense_amount") + private Integer offenseAmount; + + @Column(name = "offense_illegal_waste_quantity") + private Integer offenseIllegalWasteQuantity; + + @Column(name = "dambo_unpaid_amount") + private Integer damboUnpaidAmount; + + @Column(name = "dambo_payment") + private Integer damboPayment; + + @Column(name = "payment_payment_dt") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm") + private LocalDateTime paymentPaymentDt; + + @Column(name = "confiscation_frame") + private String confiscationFrame; + + @Column(name = "confiscation_width") + private String confiscationWidth; + + @Column(name = "confiscation_jo") + private String confiscationJo; + + @Column(name = "confiscation_gae") + private String confiscationGae; + + @Column(name = "confiscation_etc") + private String confiscationEtc; + + @Column(name = "catch_fish_species") + private String catchFishSpecies; + + @Column(name = "catch_cnt") + private Integer catchCnt; + + @Column(name = "offense_fish_species") + private String offenseFishSpecies; + + @Column(name = "offense_catch_cnt") + private Integer offenseCatchCnt; + + @Column(name = "save_yn") + private String saveYn; + + @Column(name = "wrt_organ") + private String wrtOrgan; + + @Column(name = "wrt_user_seq") + private Integer wrtUserSeq; + + @Column(name = "wrt_nm") + private String wrtNm; + + @Column(name = "wrt_dt") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm") + private LocalDateTime wrtDt; + + @Transient + private String boatMaterialEtc; + + @Embeddable + @Data + @NoArgsConstructor + @AllArgsConstructor + public static class FishingBoatId implements Serializable { + private Integer fbKey; + private Integer cdsKey; + } +} diff --git a/src/main/java/com/dbnt/faisp/faStatistics/crackdownStatus/model/ProcessResult.java b/src/main/java/com/dbnt/faisp/faStatistics/crackdownStatus/model/ProcessResult.java new file mode 100644 index 00000000..7112f9ab --- /dev/null +++ b/src/main/java/com/dbnt/faisp/faStatistics/crackdownStatus/model/ProcessResult.java @@ -0,0 +1,143 @@ +package com.dbnt.faisp.faStatistics.crackdownStatus.model; + +import com.dbnt.faisp.config.BaseModel; +import lombok.*; +import org.hibernate.annotations.DynamicInsert; +import org.hibernate.annotations.DynamicUpdate; +import org.springframework.format.annotation.DateTimeFormat; + +import javax.persistence.*; +import java.io.Serializable; +import java.time.LocalDateTime; + +@Getter +@Setter +@Entity +@NoArgsConstructor +@DynamicInsert +@DynamicUpdate +@Table(name = "process_result") +@IdClass(ProcessResult.ProcessResultId.class) +public class ProcessResult extends BaseModel { + + @Id + @Column(name = "pr_key") + private Integer prKey; + + @Id + @Column(name = "cds_key") + private Integer cdsKey; + + @Column(name = "process_status") + private String processStatus; + + @Column(name = "pressurized_time_taken") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm") + private LocalDateTime pressurizedTimeTaken; + + @Column(name = "warrant_req_take_time") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm") + private LocalDateTime warrantReqTakeTime; + + @Column(name = "is_ivsgt_stop") + private String isIvsgtStop; + + @Column(name = "eviction_dt") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm") + private String evictionDt; + + @Column(name = "direct_handover_dt") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm") + private LocalDateTime directHandoverDt; + + @Column(name = "handover_sea_point_lon") + private String handoverSeaPointLon; + + @Column(name = "handover_sea_point_lat") + private String handoverSeaPointLat; + + @Column(name = "handover_sea_point_detail") + private String handoverSeaPointDetail; + + @Column(name = "handover_boat") + private String handoverBoat; + + @Column(name = "middle_takeover_boat") + private String middleTakeoverBoat; + + @Column(name = "consignment_start_dt") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm") + private LocalDateTime consignmentStartDt; + + @Column(name = "consignment_end_dt") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm") + private LocalDateTime consignmentEndDt; + + @Column(name = "confiscation_dt") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm") + private LocalDateTime confiscationDt; + + @Column(name = "boat_disposal_dt") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm") + private LocalDateTime boatDisposalDt; + + @Column(name = "boat_disposal_type") + private String boatDisposalType; + + @Column(name = "return_dt") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm") + private LocalDateTime returnDt; + + @Column(name = "exile_cnt") + private Integer exileCnt; + + @Column(name = "exile_dt") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm") + private LocalDateTime exileDt; + + @Column(name = "flight") + private String flight; + + @Column(name = "immigration_office_name") + private String immigrationOfficeName; + + @Column(name = "immigration_office_officer_name") + private String immigrationOfficeOfficerName; + + @Column(name = "immigration_office_officer_contact") + private String immigrationOfficeOfficerContact; + + @Column(name = "sentencing_court") + private String sentencingCourt; + + @Column(name = "sentencing_detail") + private String sentencingDetail; + + @Column(name = "execution_detail") + private String executionDetail; + + @Column(name = "wrt_organ") + private String wrtOrgan; + + @Column(name = "wrt_user_seq") + private Integer wrtUserSeq; + + @Column(name = "wrt_nm") + private String wrtNm; + + @Column(name = "wrt_dt") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm") + private LocalDateTime wrtDt; + + @Transient + private String processStatusEtc; + + @Embeddable + @Data + @NoArgsConstructor + @AllArgsConstructor + public static class ProcessResultId implements Serializable { + private Integer prKey; + private Integer cdsKey; + } +} diff --git a/src/main/java/com/dbnt/faisp/faStatistics/crackdownStatus/model/Sailor.java b/src/main/java/com/dbnt/faisp/faStatistics/crackdownStatus/model/Sailor.java new file mode 100644 index 00000000..8816f377 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/faStatistics/crackdownStatus/model/Sailor.java @@ -0,0 +1,100 @@ +package com.dbnt.faisp.faStatistics.crackdownStatus.model; + +import com.dbnt.faisp.config.BaseModel; +import lombok.*; +import org.hibernate.annotations.DynamicInsert; +import org.hibernate.annotations.DynamicUpdate; +import org.springframework.format.annotation.DateTimeFormat; + +import javax.persistence.*; +import java.io.Serializable; +import java.time.LocalDateTime; + +@Getter +@Setter +@Entity +@NoArgsConstructor +@DynamicInsert +@DynamicUpdate +@Table(name = "sailor") +@IdClass(Sailor.SailorId.class) +public class Sailor extends BaseModel { + + @Id + @Column(name = "sailor_key") + private Integer sailorKey; + + @Id + @Column(name = "fb_key") + private Integer fbKey; + + @Column(name = "sailor_name_kr") + private String sailorNameKr; + + @Column(name = "sailor_name_cn") + private String sailorNameCn; + + @Column(name = "sailor_name_pinyin") + private String sailorNamePinyin; + + @Column(name = "sailor_contact") + private String sailorContact; + + @Column(name = "birthdate") + private String birthdate; + + @Column(name = "residence") + private String residence; + + @Column(name = "education") + private String education; + + @Column(name = "position") + private String position; + + @Column(name = "career") + private String career; + + @Column(name = "similar_criminal_history") + private Integer similarCriminalHistory; + + @Column(name = "heterogeneous_criminal_history") + private Integer heterogeneousCriminalHistory; + + @Column(name = "arrest_history") + private Integer arrestHistory; + + @Column(name = "criminal_history_detail") + private String criminalHistoryDetail; + + @Column(name = "monthly_wages") + private String monthlyWages; + + @Column(name = "is_restriction") + private String isRestriction; + + @Column(name = "note") + private String note; + + @Column(name = "wrt_organ") + private String wrtOrgan; + + @Column(name = "wrt_user_seq") + private Integer wrtUserSeq; + + @Column(name = "wrt_nm") + private String wrtNm; + + @Column(name = "wrt_dt") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm") + private LocalDateTime wrtDt; + + @Embeddable + @Data + @NoArgsConstructor + @AllArgsConstructor + public static class SailorId implements Serializable { + private Integer sailorKey; + private Integer fbKey; + } +} diff --git a/src/main/java/com/dbnt/faisp/faStatistics/crackdownStatus/model/Violation.java b/src/main/java/com/dbnt/faisp/faStatistics/crackdownStatus/model/Violation.java new file mode 100644 index 00000000..86be3085 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/faStatistics/crackdownStatus/model/Violation.java @@ -0,0 +1,31 @@ +package com.dbnt.faisp.faStatistics.crackdownStatus.model; + +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 javax.persistence.*; + +@Getter +@Setter +@Entity +@NoArgsConstructor +@DynamicInsert +@DynamicUpdate +@Table(name = "violation") +public class Violation extends BaseModel { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "violation_key") + private Integer violationKey; + @Column(name = "fb_key") + private Integer fbKey; + @Column(name = "violation") + private String violation; + + @Transient + private String violationEtc; +} diff --git a/src/main/java/com/dbnt/faisp/faStatistics/crackdownStatus/repository/CaptionPhotoFileRepository.java b/src/main/java/com/dbnt/faisp/faStatistics/crackdownStatus/repository/CaptionPhotoFileRepository.java new file mode 100644 index 00000000..fdabd9a9 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/faStatistics/crackdownStatus/repository/CaptionPhotoFileRepository.java @@ -0,0 +1,8 @@ +package com.dbnt.faisp.faStatistics.crackdownStatus.repository; + +import com.dbnt.faisp.faStatistics.crackdownStatus.model.CaptinPhotoFile; +import org.springframework.data.jpa.repository.JpaRepository; + +public interface CaptionPhotoFileRepository extends JpaRepository { + +} diff --git a/src/main/java/com/dbnt/faisp/faStatistics/crackdownStatus/repository/CrackdownStatusRepository.java b/src/main/java/com/dbnt/faisp/faStatistics/crackdownStatus/repository/CrackdownStatusRepository.java new file mode 100644 index 00000000..2333669d --- /dev/null +++ b/src/main/java/com/dbnt/faisp/faStatistics/crackdownStatus/repository/CrackdownStatusRepository.java @@ -0,0 +1,8 @@ +package com.dbnt.faisp.faStatistics.crackdownStatus.repository; + +import com.dbnt.faisp.faStatistics.crackdownStatus.model.CrackdownStatus; +import org.springframework.data.jpa.repository.JpaRepository; + +public interface CrackdownStatusRepository extends JpaRepository { + +} diff --git a/src/main/java/com/dbnt/faisp/faStatistics/crackdownStatus/repository/FishingBoatRepository.java b/src/main/java/com/dbnt/faisp/faStatistics/crackdownStatus/repository/FishingBoatRepository.java new file mode 100644 index 00000000..2d547182 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/faStatistics/crackdownStatus/repository/FishingBoatRepository.java @@ -0,0 +1,8 @@ +package com.dbnt.faisp.faStatistics.crackdownStatus.repository; + +import com.dbnt.faisp.faStatistics.crackdownStatus.model.FishingBoat; +import org.springframework.data.jpa.repository.JpaRepository; + +public interface FishingBoatRepository extends JpaRepository { + +} diff --git a/src/main/java/com/dbnt/faisp/faStatistics/crackdownStatus/repository/ProcessResultRepository.java b/src/main/java/com/dbnt/faisp/faStatistics/crackdownStatus/repository/ProcessResultRepository.java new file mode 100644 index 00000000..abd1c8d5 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/faStatistics/crackdownStatus/repository/ProcessResultRepository.java @@ -0,0 +1,8 @@ +package com.dbnt.faisp.faStatistics.crackdownStatus.repository; + +import com.dbnt.faisp.faStatistics.crackdownStatus.model.ProcessResult; +import org.springframework.data.jpa.repository.JpaRepository; + +public interface ProcessResultRepository extends JpaRepository { + +} diff --git a/src/main/java/com/dbnt/faisp/faStatistics/crackdownStatus/repository/SailorRepository.java b/src/main/java/com/dbnt/faisp/faStatistics/crackdownStatus/repository/SailorRepository.java new file mode 100644 index 00000000..d63c9ad1 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/faStatistics/crackdownStatus/repository/SailorRepository.java @@ -0,0 +1,8 @@ +package com.dbnt.faisp.faStatistics.crackdownStatus.repository; + +import com.dbnt.faisp.faStatistics.crackdownStatus.model.Sailor; +import org.springframework.data.jpa.repository.JpaRepository; + +public interface SailorRepository extends JpaRepository { + +} diff --git a/src/main/java/com/dbnt/faisp/faStatistics/crackdownStatus/repository/ViolationRepository.java b/src/main/java/com/dbnt/faisp/faStatistics/crackdownStatus/repository/ViolationRepository.java new file mode 100644 index 00000000..4b4c57b1 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/faStatistics/crackdownStatus/repository/ViolationRepository.java @@ -0,0 +1,8 @@ +package com.dbnt.faisp.faStatistics.crackdownStatus.repository; + +import com.dbnt.faisp.faStatistics.crackdownStatus.model.Violation; +import org.springframework.data.jpa.repository.JpaRepository; + +public interface ViolationRepository extends JpaRepository { + +} diff --git a/src/main/java/com/dbnt/faisp/faStatistics/crackdownStatus/service/CrackdownStatusService.java b/src/main/java/com/dbnt/faisp/faStatistics/crackdownStatus/service/CrackdownStatusService.java new file mode 100644 index 00000000..a5c93d00 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/faStatistics/crackdownStatus/service/CrackdownStatusService.java @@ -0,0 +1,97 @@ +package com.dbnt.faisp.faStatistics.crackdownStatus.service; + + +import com.dbnt.faisp.config.BaseService; +import com.dbnt.faisp.faStatistics.crackdownStatus.mapper.CrackdownStatusMapper; +import com.dbnt.faisp.faStatistics.crackdownStatus.model.CrackdownStatus; +import com.dbnt.faisp.faStatistics.crackdownStatus.model.ProcessResult; +import com.dbnt.faisp.faStatistics.crackdownStatus.model.Sailor; +import com.dbnt.faisp.faStatistics.crackdownStatus.model.Violation; +import com.dbnt.faisp.faStatistics.crackdownStatus.repository.*; +import com.dbnt.faisp.faStatistics.internationalCrimeArrest.model.InternationalCrimeArrest; +import com.dbnt.faisp.faStatistics.internationalCrimeArrest.model.SuspectPersonInfo; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +@Service +@RequiredArgsConstructor +public class CrackdownStatusService extends BaseService { + + private final CrackdownStatusMapper crackdownStatusMapper; + private final CrackdownStatusRepository crackdownStatusRepository; + private final FishingBoatRepository fishingBoatRepository; + private final ViolationRepository violationRepository; + private final ProcessResultRepository processResultRepository; + private final SailorRepository sailorRepository; + + public List selectCrackdownStatusList(CrackdownStatus crackdownStatus) { + return crackdownStatusMapper.selectCrackdownStatusList(crackdownStatus); + }; + + public Integer selectCrackdownStatusListCnt(CrackdownStatus crackdownStatus) { + return crackdownStatusMapper.selectCrackdownStatusListCnt(crackdownStatus); + } + + public CrackdownStatus selectCrackdownStatus(Integer cdsKey) { + CrackdownStatus savedCrackdownStatus = crackdownStatusRepository.findById(cdsKey).orElse(null); + if (savedCrackdownStatus != null) { + + } + return savedCrackdownStatus; + } + + @Transactional + public Integer saveCrackdownStatus(CrackdownStatus crackdownStatus) { + if (crackdownStatus.getCrackdownBoatEtc() != null) { + crackdownStatus.setCrackdownBoat(crackdownStatus.getCrackdownBoatEtc()); + } + if (crackdownStatus.getCrackdownPoliceEtc() != null) { + crackdownStatus.setCrackdownPolice(crackdownStatus.getCrackdownPoliceEtc()); + } + + Integer cdsKey = crackdownStatusRepository.save(crackdownStatus).getCdsKey(); + if (crackdownStatus.getFishingBoat() != null) { + if (crackdownStatus.getFishingBoat().getBoatMaterialEtc() != null) { + crackdownStatus.getFishingBoat().setBoatMaterial(crackdownStatus.getFishingBoat().getBoatMaterialEtc()); + } + crackdownStatus.getFishingBoat().setCdsKey(cdsKey); + Integer fbKey = fishingBoatRepository.save(crackdownStatus.getFishingBoat()).getFbKey(); + crackdownStatus.getFishingBoat().setFbKey(fbKey); + } + + if (crackdownStatus.getProcessResult() != null) { + if (crackdownStatus.getProcessResult().getProcessStatusEtc() != null) { + crackdownStatus.getProcessResult().setProcessStatus(crackdownStatus.getProcessResult().getProcessStatusEtc()); + } + crackdownStatus.getProcessResult().setCdsKey(cdsKey); + Integer prKey = processResultRepository.save(crackdownStatus.getProcessResult()).getPrKey(); + crackdownStatus.getProcessResult().setPrKey(prKey); + } + + /*if (internationalCrimeArrest.getDeleteSpiKeyList() != null) { + suspectPersonInfoRepository.deleteAllByIdInQuery(internationalCrimeArrest.getDeleteSpiKeyList()); + }*/ + + if (crackdownStatus.getViolationList() != null) { + for(Violation violation: crackdownStatus.getViolationList()){ + if (violation.getViolationEtc() != null) { + violation.setViolation(violation.getViolationEtc()); + } + violation.setFbKey(crackdownStatus.getFishingBoat().getFbKey()); + } + violationRepository.saveAll(crackdownStatus.getViolationList()); + } + + if (crackdownStatus.getSailorList() != null) { + for(Sailor sailor: crackdownStatus.getSailorList()){ + sailor.setFbKey(crackdownStatus.getFishingBoat().getFbKey()); + } + sailorRepository.saveAll(crackdownStatus.getSailorList()); + } + + return cdsKey; + } +} diff --git a/src/main/java/com/dbnt/faisp/faStatistics/internationalCrimeArrest/mapper/InternationalCrimeArrestMapper.java b/src/main/java/com/dbnt/faisp/faStatistics/internationalCrimeArrest/mapper/InternationalCrimeArrestMapper.java index d27a3548..3763b62d 100644 --- a/src/main/java/com/dbnt/faisp/faStatistics/internationalCrimeArrest/mapper/InternationalCrimeArrestMapper.java +++ b/src/main/java/com/dbnt/faisp/faStatistics/internationalCrimeArrest/mapper/InternationalCrimeArrestMapper.java @@ -1,6 +1,5 @@ package com.dbnt.faisp.faStatistics.internationalCrimeArrest.mapper; -import com.dbnt.faisp.equip.model.Equip; import com.dbnt.faisp.faStatistics.internationalCrimeArrest.model.InternationalCrimeArrest; import com.dbnt.faisp.util.ParamMap; import org.apache.ibatis.annotations.Mapper; @@ -12,6 +11,5 @@ public interface InternationalCrimeArrestMapper{ List selectInternationalCrimeArrestList(InternationalCrimeArrest internationalCrimeArrest); Integer selectInternationalCrimeArrestListCnt(InternationalCrimeArrest internationalCrimeArrest); List selectInternationalCrimeArrestParamList(InternationalCrimeArrest internationalCrimeArrest); - List selectSuspectPersonInfoParamList(int icaKey); Integer icaDuplicateCount(InternationalCrimeArrest internationalCrimeArrest); } diff --git a/src/main/java/com/dbnt/faisp/ivsgtMgt/boardInvestigation/service/BoardInvestigationService.java b/src/main/java/com/dbnt/faisp/ivsgtMgt/boardInvestigation/service/BoardInvestigationService.java index 49baeec3..0fc4d977 100644 --- a/src/main/java/com/dbnt/faisp/ivsgtMgt/boardInvestigation/service/BoardInvestigationService.java +++ b/src/main/java/com/dbnt/faisp/ivsgtMgt/boardInvestigation/service/BoardInvestigationService.java @@ -90,7 +90,7 @@ public class BoardInvestigationService extends BaseService { int fileSeq = lastFileInfo==null?1:(lastFileInfo.getFileSeq()+1); for(MultipartFile file : multipartFileList){ String saveName = UUID.randomUUID().toString(); - String path = locationPath+ File.separator+"monthPlan"+File.separator; + String path = locationPath+ File.separator+"ivsgt"+File.separator; saveFile(file, new File(path+File.separator+saveName)); String originalFilename = file.getOriginalFilename(); diff --git a/src/main/resources/mybatisMapper/CrackdownStatustMapper.xml b/src/main/resources/mybatisMapper/CrackdownStatustMapper.xml new file mode 100644 index 00000000..29e4bf2d --- /dev/null +++ b/src/main/resources/mybatisMapper/CrackdownStatustMapper.xml @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/faStatistics/crackdownStatus.js b/src/main/resources/static/js/faStatistics/crackdownStatus.js new file mode 100644 index 00000000..332c22c6 --- /dev/null +++ b/src/main/resources/static/js/faStatistics/crackdownStatus.js @@ -0,0 +1,305 @@ +$(document).on('click', '#crackdownStatusAddBtn', function () { + getCrackdownStatusEditModal(null); +}); + +$(document).on('click', '#crackdownStatusEditBtn', function () { + $("#crackdownStatusViewModal").modal('hide'); + getCrackdownStatusEditModal(Number($("#icaViewBody").find("[name='cdsKey']").val())); +}); + + +$(document).on('click', '#saveCrackdownStatusBtn', function (){ + saveCrackdownStatus('N') +}); + +$(document).on('click', '#saveTempBtn', function (){ + saveCrackdownStatus('Y') +}); + +$(document).on('click', '.tr', function (){ + getCrackdownStatusViewModal($(this).data('key')); +}); + +$(document).on('click', '#sailorAddBtn', function (){ + $('#sailorDiv').append( + '
' + + '' + + '
' + + '' + + '
' + + '
' + + '' + + '
' + + '' + + '
' + ) +}); + + +$(document).on('click', '#violationAddBtn', function (){ + let violation = ''; + commonCode.VT.forEach(function (item){ + violation += ''; + }) + + $('#violationDiv').append( + '
' + + '' + + '' + + '
' + ) +}); + + +$(document).on('click', '#sailorRemoveBtn', function (){ + $(this).parent().remove(); +}); + +$(document).on('click', '#violationRemoveBtn', function (){ + $(this).parent().remove(); +}); + +$(document).on('change', '.violation', function (){ + if ($(this).val() == 'etc') { + $(this).after( + '
' + + '' + + '
' + ); + } else { + $(this).next().remove(); + } +}); + +$(document).on('change', '#crackdownPolice', function (){ + if ($(this).val() == 'etc') { + $(this).after( + '
' + + '' + + '
' + ); + } else { + $(this).next().remove(); + } +}); + +$(document).on('change', '#crackdownBoat', function (){ + if ($(this).val() == 'etc') { + $(this).after( + '
' + + '' + + '
' + ); + } else { + $(this).next().remove(); + } +}); + +$(document).on('change', '#boatMaterial', function (){ + if ($(this).val() == 'etc') { + $(this).after( + '
' + + '' + + '
' + ); + } else { + $(this).next().remove(); + } +}); + +$(document).on('change', '#processStatus', function (){ + if ($(this).val() == 'etc') { + $(this).after( + '
' + + '' + + '
' + ); + } else { + $(this).next().remove(); + } +}); + +function getCrackdownStatusEditModal(cdsKey){ + $.ajax({ + url: '/faStatistics/crackdownStatus/crackdownStatusEditModal', + data: { + cdsKey: cdsKey + }, + type: 'GET', + dataType:"html", + success: function(html){ + $("#crackdownStatusViewBody").empty(); + $("#crackdownStatusEditModalContent").empty().append(html); + $("#crackdownStatusEditModal").modal('show'); + + $("#napoDt").datepicker({ + format: "yyyy-mm-dd", + language: "ko" + }); + $("#birthdate").datepicker({ + format: "yyyy-mm-dd", + language: "ko" + }); + $("#paymentPaymentDt").datepicker({ + format: "yyyy-mm-dd", + language: "ko" + }); + $("#consignmentStartDt").datepicker({ + format: "yyyy-mm-dd", + language: "ko" + }); + $("#consignmentEndDt").datepicker({ + format: "yyyy-mm-dd", + language: "ko" + }); + $("#evictionDt").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" + }); + $("#directHandoverDt").datepicker({ + format: "yyyy-mm-dd", + language: "ko" + }); + $("#fieldIvsgtNapoDt").datepicker({ + format: "yyyy-mm-dd", + language: "ko" + }); + $("#fieldIvsgtReleaseDt").datepicker({ + format: "yyyy-mm-dd", + language: "ko" + }); + $("#pressurizedStartDt").datepicker({ + format: "yyyy-mm-dd", + language: "ko" + }); + $("#pressurizedEndDt").datepicker({ + format: "yyyy-mm-dd", + language: "ko" + }); + + }, + error:function(){ + + } + }); +} + +function saveCrackdownStatus(saveYn){ + if(contentCheck()){ + if(confirm("저장하시겠습니까?")){ + $("#saveYn").val(saveYn); + contentFade("in"); + const formData = new FormData($("#cdsEditForm")[0]); + + let violationList = []; + let sailorList = []; + + sailorList.push( + { position: 'POS001', sailorNameKr: null, isRestriction: $("#cdsEditForm").find('select[name="captin"]').val() != '' ? $("#cdsEditForm").find('select[name="captin"]').val() : null }, + { position: 'POS002', sailorNameKr: null, isRestriction: $("#cdsEditForm").find('select[name="mate"]').val() != '' ? $("#cdsEditForm").find('select[name="mate"]').val() : null }, + { position: 'POS003', sailorNameKr: null, isRestriction: $("#cdsEditForm").find('select[name="warden"]').val() != '' ? $("#cdsEditForm").find('select[name="warden"]').val() : null } + ); + + $(".sailor-list").each(function (){ + sailorList.push({ + sailorKey: $(this).parent().parent().find('input[name="sailorKey"]').val() != undefined ? Number($(this).find('input[name="sailorKey"]').val()) : null, + sailorNameKr: $(this).parent().parent().find('input[name="sailorNameKr"]').val(), + position: 'POS006', + isRestriction: $(this).val() != undefined ? $(this).val() : null + }); + }); + + for (let i=0; i < sailorList.length; i++) { + if (sailorList[i].spiKey != null) { + formData.append(`sailorList[${i}].sailorKey`, sailorList[i].sailorKey); + } + if (sailorList[i].sailorNameKr != null) { + formData.append(`sailorList[${i}].sailorNameKr`, sailorList[i].sailorNameKr); + } + formData.append(`sailorList[${i}].position`, sailorList[i].position); + if (sailorList[i].isRestriction != null) { + formData.append(`sailorList[${i}].isRestriction`, sailorList[i].isRestriction); + } + } + + $(".violation").each(function (){ + violationList.push({ + violationKey: $(this).parent().find('input[name="violationKey"]').val() != undefined ? Number($(this).find('input[name="violationKey"]').val()) : null, + fbKey: $("#cdsEditForm").find('input[name="fbKey"]').val() != undefined ? Number($(this).find('input[name="fbKey"]').val()) : null, + violation: $(this).val() != '' ? $(this).val() : null, + violationEtc: $(this).parent().find('input[name="violationEtc"]').val() != undefined ? $(this).find('input[name="violationEtc"]').val() : null + }); + }); + + for (let i=0; i < violationList.length; i++) { + if (violationList[i].violationKey != null) { + formData.append(`violationList[${i}].violationKey`, violationList[i].violationKey); + } + if (violationList[i].fbKey != null) { + formData.append(`violationList[${i}].fbKey`, violationList[i].fbKey); + } + if (violationList[i].violation != null) { + formData.append(`violationList[${i}].violation`, violationList[i].violation); + } + if (violationList[i].violationEtc != null) { + formData.append(`violationList[${i}].violationEtc`, violationList[i].violationEtc); + } + } + + $.ajax({ + type : 'POST', + data : formData, + url : "/faStatistics/crackdownStatus/saveCrackdownStatus", + processData: false, + contentType: false, + success : function(result) { + alert("저장되었습니다."); + contentFade("out"); + $("#crackdownStatusEditModal").modal('hide'); + }, + error : function(xhr, status) { + alert("저장에 실패하였습니다.") + contentFade("out"); + } + }) + } + } +} + +function contentCheck(){ + let flag = true; + + if(!$('input[name="boatNameKr"]').val()) { + alert('선명을 입력해주세요.'); + $('input[name="boatNameKr"]').focus(); + return false; + } + + if(!$('select[name="processStatus"]').val()) { + alert('처리현황을 선택해주세요.'); + $('select[name="processStatus"]').focus(); + return false; + } + + return flag; +} \ No newline at end of file diff --git a/src/main/resources/static/js/faStatistics/internationalCrimeArrest.js b/src/main/resources/static/js/faStatistics/internationalCrimeArrest.js index c9717e41..19a67175 100644 --- a/src/main/resources/static/js/faStatistics/internationalCrimeArrest.js +++ b/src/main/resources/static/js/faStatistics/internationalCrimeArrest.js @@ -489,7 +489,6 @@ function saveInternationalCrimeArrest(contentState){ alert("저장되었습니다."); contentFade("out"); $("#icaEditModal").modal('hide'); - // getIcaViewModal(result); }, error : function(xhr, status) { alert("저장에 실패하였습니다.") diff --git a/src/main/resources/templates/faStatistics/crackdownStatus/crackdownStatus.html b/src/main/resources/templates/faStatistics/crackdownStatus/crackdownStatus.html new file mode 100644 index 00000000..fc44229d --- /dev/null +++ b/src/main/resources/templates/faStatistics/crackdownStatus/crackdownStatus.html @@ -0,0 +1,265 @@ + + + + + + +
+
+

불법조업 외국어선 단속현황

+ + +
+
+
+
+ +
+
+ +
+
+
+ + +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
연번나포일시위반장소위반내용침범유형NLL특수공무집행방해사건담당경찰서검거기관MMSI.NO(AIS)선박제원선장(출생년도)선종어획물 축소기재범칙물처리현황담보금납부(만원)담보금미납(만원)선박처리직접인계구속불구속현장조사압송영장청구 소요시간압수어구
무허가 조업 +
특정금지
+
(무허가, 정선명령위반)
+
+
EEZ
+
제한조건
+
영해침범발생건수인적피해물적피해구분선명톤수(톤)선원(명)선질선적어종어획량(kg)폐기량(kg)위판량(kg)위판금액(원)조사중완료척수납부액납부일시미납미납금액위탁관리위탁시작일위탁종료일퇴거직접인계공매폐선침몰환부일시해점인계함정중측인수함정선장향해장기관장선원구속척수(몰수판결)선장향해장기관장선원불구속척수틀(타망)폭(유망)조(형망)개(통발)기타
피해인원피해액(만원)상세내용발생건수피해액(만원)상세내용단순폐선폐선조건부공매
34214349000,00049099,099단속경찰서단속함정이름출생년도어종수량1001001008888700108400400010800001110111282762010101010102010102111010나포일시석방일시소요시간소요시간거리(해리)78101112
+
+
+ + + +
+ + +
+
+ +
+
+
+
+
+ + + +
+
+ \ No newline at end of file diff --git a/src/main/resources/templates/faStatistics/crackdownStatus/crackdownStatusEditModal.html b/src/main/resources/templates/faStatistics/crackdownStatus/crackdownStatusEditModal.html new file mode 100644 index 00000000..c07ce953 --- /dev/null +++ b/src/main/resources/templates/faStatistics/crackdownStatus/crackdownStatusEditModal.html @@ -0,0 +1,457 @@ + + + + + + \ No newline at end of file