불법조업 외국어선 작업중.

청산보고서 견문 불러오기 조건 추가.
master
강석 최 2023-01-16 13:15:34 +09:00
parent 45f2c92840
commit db0813f740
18 changed files with 491 additions and 336 deletions

View File

@ -7,6 +7,7 @@ import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.fishingBoat.Fishi
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.fishingBoat.FishingBoatVersion; import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.fishingBoat.FishingBoatVersion;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.processResult.ProcessResult; 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.FishingBoatService;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.service.UnlawfulFishingService;
import com.dbnt.faisp.main.userInfo.model.UserInfo; import com.dbnt.faisp.main.userInfo.model.UserInfo;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.security.core.annotation.AuthenticationPrincipal; import org.springframework.security.core.annotation.AuthenticationPrincipal;
@ -24,6 +25,7 @@ public class FishingBoatController {
private final AuthMgtService authMgtService; private final AuthMgtService authMgtService;
private final FishingBoatService fishingBoatService; private final FishingBoatService fishingBoatService;
private final UnlawfulFishingService ufService;
private final CodeMgtService codeMgtService; private final CodeMgtService codeMgtService;
@RequestMapping("/fishingBoat") @RequestMapping("/fishingBoat")
@ -97,7 +99,9 @@ public class FishingBoatController {
public Integer saveFishingBoat(@AuthenticationPrincipal UserInfo loginUser, public Integer saveFishingBoat(@AuthenticationPrincipal UserInfo loginUser,
CrackdownStatus crackdownStatus, CrackdownStatus crackdownStatus,
MultipartHttpServletRequest request){ MultipartHttpServletRequest request){
return fishingBoatService.saveCrackdownStatus(crackdownStatus, request.getMultiFileMap().get("uploadFiles")); // return fishingBoatService.saveCrackdownStatus(crackdownStatus, request.getMultiFileMap().get("uploadFiles"));
crackdownStatus.setSailorFileList(request.getMultiFileMap().get("uploadFiles"));
return ufService.saveUnlawfulFishing(crackdownStatus);
} }
@GetMapping("/checkCaseNum") @GetMapping("/checkCaseNum")

View File

@ -14,9 +14,9 @@ import java.io.Serializable;
@NoArgsConstructor @NoArgsConstructor
@DynamicInsert @DynamicInsert
@DynamicUpdate @DynamicUpdate
@IdClass(CaptinPhotoFile.CaptinPhotoFileId.class) @IdClass(SailorFile.SailorFileId.class)
@Table(name = "captin_photo_file") @Table(name = "sailor_file")
public class CaptinPhotoFile extends FileInfo { public class SailorFile extends FileInfo {
@Id @Id
@Column(name = "sailor_key") @Column(name = "sailor_key")
private Integer sailorKey; private Integer sailorKey;
@ -45,7 +45,7 @@ public class CaptinPhotoFile extends FileInfo {
@Data @Data
@NoArgsConstructor @NoArgsConstructor
@AllArgsConstructor @AllArgsConstructor
public static class CaptinPhotoFileId implements Serializable { public static class SailorFileId implements Serializable {
private Integer sailorKey; private Integer sailorKey;
private Integer fileSeq; private Integer fileSeq;
} }

View File

@ -14,9 +14,9 @@ import java.io.Serializable;
@NoArgsConstructor @NoArgsConstructor
@DynamicInsert @DynamicInsert
@DynamicUpdate @DynamicUpdate
@IdClass(CaptinPhotoVersion.CaptinPhotoVersionId.class) @IdClass(SailorFileVersion.SailorFileVersionId.class)
@Table(name = "captin_photo_version") @Table(name = "sailor_file_version")
public class CaptinPhotoVersion extends FileInfo { public class SailorFileVersion extends FileInfo {
@Id @Id
@Column(name = "sailor_key") @Column(name = "sailor_key")
private Integer sailorKey; private Integer sailorKey;
@ -49,7 +49,7 @@ public class CaptinPhotoVersion extends FileInfo {
@Data @Data
@NoArgsConstructor @NoArgsConstructor
@AllArgsConstructor @AllArgsConstructor
public static class CaptinPhotoVersionId implements Serializable { public static class SailorFileVersionId implements Serializable {
private Integer sailorKey; private Integer sailorKey;
private Integer fileSeq; private Integer fileSeq;
private Integer versionNo; private Integer versionNo;

View File

@ -11,6 +11,7 @@ import lombok.Setter;
import org.hibernate.annotations.DynamicInsert; import org.hibernate.annotations.DynamicInsert;
import org.hibernate.annotations.DynamicUpdate; import org.hibernate.annotations.DynamicUpdate;
import org.springframework.format.annotation.DateTimeFormat; import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.multipart.MultipartFile;
import javax.persistence.*; import javax.persistence.*;
import java.time.LocalDate; import java.time.LocalDate;
@ -44,6 +45,8 @@ public class CrackdownStatus extends CrackdownStatusBaseEntity {
private ProcessResult processResult; private ProcessResult processResult;
@Transient @Transient
private List<Sailor> sailorList; private List<Sailor> sailorList;
@Transient
private List<MultipartFile> sailorFileList;
@Transient @Transient
private String crackdownPoliceEtc; private String crackdownPoliceEtc;

View File

@ -5,8 +5,10 @@ import lombok.NoArgsConstructor;
import lombok.Setter; import lombok.Setter;
import org.hibernate.annotations.DynamicInsert; import org.hibernate.annotations.DynamicInsert;
import org.hibernate.annotations.DynamicUpdate; import org.hibernate.annotations.DynamicUpdate;
import org.springframework.web.multipart.MultipartFile;
import javax.persistence.*; import javax.persistence.*;
import java.util.List;
@Getter @Getter
@Setter @Setter

View File

@ -1,6 +1,6 @@
package com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.sailor; package com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.sailor;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.CaptinPhotoFile; import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.SailorFile;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.crackdownStatus.CrackdownStatus; import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.crackdownStatus.CrackdownStatus;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.fishingBoat.FishingBoat; import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.fishingBoat.FishingBoat;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.fishingBoat.Violation; import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.fishingBoat.Violation;
@ -12,7 +12,6 @@ import org.hibernate.annotations.DynamicUpdate;
import org.springframework.format.annotation.DateTimeFormat; import org.springframework.format.annotation.DateTimeFormat;
import javax.persistence.*; import javax.persistence.*;
import java.time.LocalDate;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.List; import java.util.List;
@ -62,5 +61,5 @@ public class Sailor extends SailorBaseEntity {
private LocalDateTime napoDt; private LocalDateTime napoDt;
@Transient @Transient
private List<CaptinPhotoFile> fileList; private List<SailorFile> fileList;
} }

View File

@ -1,7 +1,7 @@
package com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.sailor; package com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.sailor;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.CaptinPhotoFile; import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.SailorFile;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.CaptinPhotoVersion; import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.SailorFileVersion;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.crackdownStatus.CrackdownStatus; import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.crackdownStatus.CrackdownStatus;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.fishingBoat.FishingBoat; import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.fishingBoat.FishingBoat;
import lombok.*; import lombok.*;
@ -54,5 +54,5 @@ public class SailorVersion extends SailorBaseEntity {
private FishingBoat fishingBoat; private FishingBoat fishingBoat;
@Transient @Transient
private List<CaptinPhotoVersion> fileList; private List<SailorFileVersion> fileList;
} }

View File

@ -1,11 +0,0 @@
package com.dbnt.faisp.main.faStatistics.crackdownsStatus.repository;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.CaptinPhotoFile;
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;
public interface CaptionPhotoFileRepository extends JpaRepository<CaptinPhotoFile, CaptinPhotoFile.CaptinPhotoFileId> {
List<CaptinPhotoFile> findBySailorKeyOrderByFileSeqAsc(Integer sailorKey);
}

View File

@ -1,8 +0,0 @@
package com.dbnt.faisp.main.faStatistics.crackdownsStatus.repository;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.CaptinPhotoVersion;
import org.springframework.data.jpa.repository.JpaRepository;
public interface CaptionPhotoVersionRepository extends JpaRepository<CaptinPhotoVersion, CaptinPhotoVersion.CaptinPhotoVersionId> {
}

View File

@ -0,0 +1,11 @@
package com.dbnt.faisp.main.faStatistics.crackdownsStatus.repository;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.SailorFile;
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;
public interface SailorFileRepository extends JpaRepository<SailorFile, SailorFile.SailorFileId> {
List<SailorFile> findBySailorKeyOrderByFileSeqAsc(Integer sailorKey);
}

View File

@ -0,0 +1,8 @@
package com.dbnt.faisp.main.faStatistics.crackdownsStatus.repository;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.SailorFileVersion;
import org.springframework.data.jpa.repository.JpaRepository;
public interface SailorFileVersionRepository extends JpaRepository<SailorFileVersion, SailorFileVersion.SailorFileVersionId> {
}

View File

@ -20,118 +20,130 @@ import java.util.List;
@RequiredArgsConstructor @RequiredArgsConstructor
public class CrackdownStatusService extends BaseService { public class CrackdownStatusService extends BaseService {
private final CrackdownStatusMapper crackdownStatusMapper; private final CrackdownStatusMapper crackdownStatusMapper;
private final CrackdownStatusRepository crackdownStatusRepository; private final CrackdownStatusRepository crackdownStatusRepository;
private final CrackdownStatusVersionRepository crackdownStatusVersionRepository; private final CrackdownStatusVersionRepository crackdownStatusVersionRepository;
private final FishingBoatRepository fishingBoatRepository; private final FishingBoatRepository fishingBoatRepository;
private final ViolationRepository violationRepository; private final ViolationRepository violationRepository;
private final ProcessResultRepository processResultRepository; private final ProcessResultRepository processResultRepository;
private final SailorRepository sailorRepository; private final SailorRepository sailorRepository;
public List<CrackdownStatus> selectCrackdownStatusList(CrackdownStatus crackdownStatus) { public List<CrackdownStatus> selectCrackdownStatusList(CrackdownStatus crackdownStatus) {
return crackdownStatusMapper.selectCrackdownStatusList(crackdownStatus); return crackdownStatusMapper.selectCrackdownStatusList(crackdownStatus);
}; };
public Integer selectCrackdownStatusListCnt(CrackdownStatus crackdownStatus) { public Integer selectCrackdownStatusListCnt(CrackdownStatus crackdownStatus) {
return crackdownStatusMapper.selectCrackdownStatusListCnt(crackdownStatus); return crackdownStatusMapper.selectCrackdownStatusListCnt(crackdownStatus);
}
public CrackdownStatus selectCrackdownStatus(Integer cdsKey) {
CrackdownStatus savedCrackdownStatus = crackdownStatusRepository.findById(cdsKey).orElse(null);
if (savedCrackdownStatus != null) {
}
return savedCrackdownStatus;
}
public List<CrackdownStatusVersion> 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) {
violationRepository.deleteAllByIdInQuery(crackdownStatus.getViolationDeleteKeyList());
}
if (crackdownStatus.getSailorDeleteKeyList() != null) {
sailorRepository.deleteAllByIdInQuery(crackdownStatus.getSailorDeleteKeyList());
} }
public CrackdownStatus selectCrackdownStatus(Integer cdsKey) { if (crackdownStatus.getCrackdownBoatEtc() != null) {
CrackdownStatus savedCrackdownStatus = crackdownStatusRepository.findById(cdsKey).orElse(null); crackdownStatus.setCrackdownBoat(crackdownStatus.getCrackdownBoatEtc());
if (savedCrackdownStatus != null) { }
if (crackdownStatus.getCrackdownPoliceEtc() != null) {
} crackdownStatus.setCrackdownPolice(crackdownStatus.getCrackdownPoliceEtc());
return savedCrackdownStatus;
} }
public List<CrackdownStatusVersion> selectCrackdownStatusVersionList(Integer cdsKey) { Integer cdsKey = crackdownStatusRepository.save(crackdownStatus).getCdsKey();
return crackdownStatusVersionRepository.findByCdsKey(cdsKey); saveCrackdownStatusVersion(crackdownStatus);
if (crackdownStatus.getFishingBoat() != null) {
if (crackdownStatus.getFishingBoat().getBoatMaterialEtc() != null) {
crackdownStatus.getFishingBoat().setBoatMaterial(crackdownStatus.getFishingBoat().getBoatMaterialEtc());
}
if (crackdownStatus.getFishingBoat().getFisheryTypeEtc() != null) {
crackdownStatus.getFishingBoat().setFisheryType(crackdownStatus.getFishingBoat().getFisheryTypeEtc());
}
crackdownStatus.getFishingBoat().setCdsKey(cdsKey);
Integer fbKey = fishingBoatRepository.save(crackdownStatus.getFishingBoat()).getFbKey();
crackdownStatus.getFishingBoat().setFbKey(fbKey);
} }
public CrackdownStatusVersion selectCrackdownStatusVersion(Integer versionNo, Integer cdsKey) { if (crackdownStatus.getProcessResult() != null) {
return crackdownStatusVersionRepository.findByVersionNoAndCdsKey(versionNo, cdsKey); 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);
} }
@Transactional
public Integer saveCrackdownStatus(CrackdownStatus crackdownStatus) {
if (crackdownStatus.getViolationDeleteKeyList() != null) {
violationRepository.deleteAllByIdInQuery(crackdownStatus.getViolationDeleteKeyList());
}
if (crackdownStatus.getSailorDeleteKeyList() != null) {
sailorRepository.deleteAllByIdInQuery(crackdownStatus.getSailorDeleteKeyList());
}
if (crackdownStatus.getCrackdownBoatEtc() != null) {
crackdownStatus.setCrackdownBoat(crackdownStatus.getCrackdownBoatEtc());
}
if (crackdownStatus.getCrackdownPoliceEtc() != null) {
crackdownStatus.setCrackdownPolice(crackdownStatus.getCrackdownPoliceEtc());
}
Integer cdsKey = crackdownStatusRepository.save(crackdownStatus).getCdsKey();
saveCrackdownStatusVersion(crackdownStatus);
if (crackdownStatus.getFishingBoat() != null) {
if (crackdownStatus.getFishingBoat().getBoatMaterialEtc() != null) {
crackdownStatus.getFishingBoat().setBoatMaterial(crackdownStatus.getFishingBoat().getBoatMaterialEtc());
}
if (crackdownStatus.getFishingBoat().getFisheryTypeEtc() != null) {
crackdownStatus.getFishingBoat().setFisheryType(crackdownStatus.getFishingBoat().getFisheryTypeEtc());
}
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) { /*if (internationalCrimeArrest.getDeleteSpiKeyList() != null) {
suspectPersonInfoRepository.deleteAllByIdInQuery(internationalCrimeArrest.getDeleteSpiKeyList()); suspectPersonInfoRepository.deleteAllByIdInQuery(internationalCrimeArrest.getDeleteSpiKeyList());
}*/ }*/
if (crackdownStatus.getSailorList() != null) { if (crackdownStatus.getSailorList() != null) {
for(Sailor sailor: crackdownStatus.getSailorList()){ for(Sailor sailor: crackdownStatus.getSailorList()){
sailor.setFbKey(crackdownStatus.getFishingBoat().getFbKey()); sailor.setFbKey(crackdownStatus.getFishingBoat().getFbKey());
} }
sailorRepository.saveAll(crackdownStatus.getSailorList()); sailorRepository.saveAll(crackdownStatus.getSailorList());
}
if (crackdownStatus.getViolationList().get(0).getViolation() != null) {
Violation lastViolation = violationRepository.findTopByFbKeyOrderByViolationKeyDesc(crackdownStatus.getFbKey()).orElse(null);
int violationKey = lastViolation==null?1:(lastViolation.getViolationKey()+1);
for(Violation violation: crackdownStatus.getViolationList()){
if (violation.getViolationEtc() != null) {
violation.setViolation(violation.getViolationEtc());
}
violation.setFbKey(crackdownStatus.getFishingBoat().getFbKey());
if (violation.getViolationKey() == null) {
violation.setViolationKey(violationKey);
violationKey++;
}
}
violationRepository.saveAll(crackdownStatus.getViolationList());
}
return cdsKey;
} }
public void saveCrackdownStatusVersion(CrackdownStatus crackdownStatus) { if (crackdownStatus.getViolationList().get(0).getViolation() != null) {
CrackdownStatusVersion lastVersion = crackdownStatusVersionRepository.findTopByCdsKeyOrderByVersionNoDesc(crackdownStatus.getCdsKey()).orElse(null); Violation lastViolation = violationRepository.findTopByFbKeyOrderByViolationKeyDesc(crackdownStatus.getFbKey()).orElse(null);
int versionNo = lastVersion==null?1:(lastVersion.getVersionNo()+1); int violationKey = lastViolation==null?1:(lastViolation.getViolationKey()+1);
CrackdownStatusVersion crackdownStatusVersion = new CrackdownStatusVersion(); for(Violation violation: crackdownStatus.getViolationList()){
BeanUtils.copyProperties(crackdownStatus, crackdownStatusVersion); if (violation.getViolationEtc() != null) {
crackdownStatusVersion.setVersionNo(versionNo); violation.setViolation(violation.getViolationEtc());
}
crackdownStatusVersionRepository.save(crackdownStatusVersion); violation.setFbKey(crackdownStatus.getFishingBoat().getFbKey());
if (violation.getViolationKey() == null) {
violation.setViolationKey(violationKey);
violationKey++;
}
}
violationRepository.saveAll(crackdownStatus.getViolationList());
} }
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();
BeanUtils.copyProperties(crackdownStatus, crackdownStatusVersion);
crackdownStatusVersion.setVersionNo(versionNo);
crackdownStatusVersionRepository.save(crackdownStatusVersion);
}
public int saveCrackdownStatusOnly(CrackdownStatus crackdownStatus) {
int cdsKey = crackdownStatusRepository.save(crackdownStatus).getCdsKey();
if(!crackdownStatus.getStatus().equals("DST001")){
CrackdownStatusVersion lastVersion = crackdownStatusVersionRepository.findTopByCdsKeyOrderByVersionNoDesc(cdsKey).orElse(null);
CrackdownStatusVersion crackdownStatusVersion = new CrackdownStatusVersion();
BeanUtils.copyProperties(crackdownStatus, crackdownStatusVersion);
crackdownStatusVersion.setVersionNo(lastVersion==null?1:(lastVersion.getVersionNo()+1));
crackdownStatusVersionRepository.save(crackdownStatusVersion);
}
return cdsKey;
}
} }

View File

@ -4,8 +4,8 @@ package com.dbnt.faisp.main.faStatistics.crackdownsStatus.service;
import com.dbnt.faisp.config.BaseService; import com.dbnt.faisp.config.BaseService;
import com.dbnt.faisp.config.FileInfo; import com.dbnt.faisp.config.FileInfo;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.mapper.CrackdownStatusMapper; import com.dbnt.faisp.main.faStatistics.crackdownsStatus.mapper.CrackdownStatusMapper;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.CaptinPhotoFile; import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.SailorFile;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.CaptinPhotoVersion; import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.SailorFileVersion;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.crackdownStatus.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.crackdownStatus.CrackdownStatusVersion;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.fishingBoat.FishingBoat; import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.fishingBoat.FishingBoat;
@ -45,8 +45,8 @@ public class FishingBoatService extends BaseService {
private final ProcessResultVersionRepository processResultVersionRepository; private final ProcessResultVersionRepository processResultVersionRepository;
private final SailorRepository sailorRepository; private final SailorRepository sailorRepository;
private final SailorVersionRepository sailorVersionRepository; private final SailorVersionRepository sailorVersionRepository;
private final CaptionPhotoFileRepository captionPhotoFileRepository; private final SailorFileRepository sailorFileRepository;
private final CaptionPhotoVersionRepository captionPhotoVersionRepository; private final SailorFileVersionRepository sailorFileVersionRepository;
public List<CrackdownStatus> selectFishingBoatList(CrackdownStatus crackdownStatus){ public List<CrackdownStatus> selectFishingBoatList(CrackdownStatus crackdownStatus){
return crackdownStatusMapper.selectFishingBoatList(crackdownStatus); return crackdownStatusMapper.selectFishingBoatList(crackdownStatus);
@ -65,7 +65,7 @@ public class FishingBoatService extends BaseService {
for(Sailor sailor: crackdownStatus.getSailorList()){ for(Sailor sailor: crackdownStatus.getSailorList()){
if(sailor.getPosition().equals("POS001")){ if(sailor.getPosition().equals("POS001")){
// 선장의 첨부파일 첨부 // 선장의 첨부파일 첨부
sailor.setFileList(captionPhotoFileRepository.findBySailorKeyOrderByFileSeqAsc(sailor.getSailorKey())); sailor.setFileList(sailorFileRepository.findBySailorKeyOrderByFileSeqAsc(sailor.getSailorKey()));
} }
} }
} }
@ -75,51 +75,31 @@ public class FishingBoatService extends BaseService {
@Transactional @Transactional
public Integer saveCrackdownStatus(CrackdownStatus crackdownStatus, List<MultipartFile> sailorFiles) { public Integer saveCrackdownStatus(CrackdownStatus crackdownStatus, List<MultipartFile> sailorFiles) {
Integer cdsKey, fbKey; Integer cdsKey, fbKey;
FishingBoat fishingBoat = crackdownStatus.getFishingBoat();
List<Violation> violationList = crackdownStatus.getViolationList();
ProcessResult processResult = crackdownStatus.getProcessResult();
List<Sailor> sailorList = crackdownStatus.getSailorList();
if (crackdownStatus.getCdsKey()==null || crackdownStatus.getCdsKey().equals(0)){ if (crackdownStatus.getCdsKey()==null || crackdownStatus.getCdsKey().equals(0)){
// 최초 등록시 단속현황, 처리현황, 선원정보를 같이 등록. // 최초 등록시 단속현황, 처리현황, 선원정보를 같이 등록.
// 단속현황, 단속현황버전 저장. // 단속현황, 단속현황버전 저장.
crackdownStatus = setWriteInfo(crackdownStatus); // crackdownStatus = setWriteInfo(crackdownStatus);
cdsKey = crackdownStatusRepository.save(crackdownStatus).getCdsKey(); cdsKey = crackdownStatusRepository.save(crackdownStatus).getCdsKey();
CrackdownStatusVersion crackdownStatusVersion = new CrackdownStatusVersion();
BeanUtils.copyProperties(crackdownStatus, crackdownStatusVersion);
crackdownStatusVersion.setVersionNo(1);
crackdownStatusVersionRepository.save(crackdownStatusVersion);
// 어선정보, 어선정보버전 저장. // 어선정보, 어선정보버전 저장.
FishingBoat fishingBoat = crackdownStatus.getFishingBoat();
fishingBoat.setCdsKey(cdsKey); fishingBoat.setCdsKey(cdsKey);
fbKey = fishingBoatRepository.save(fishingBoat).getFbKey(); fbKey = fishingBoatRepository.save(fishingBoat).getFbKey();
FishingBoatVersion fishingBoatVersion = new FishingBoatVersion();
BeanUtils.copyProperties(fishingBoat, fishingBoatVersion);
fishingBoatVersion.setVersionNo(1);
fishingBoatVersionRepository.save(fishingBoatVersion);
// 위반사항, 위반사항버전 저장. // 위반사항, 위반사항버전 저장.
List<Violation> violationList = crackdownStatus.getViolationList();
List<ViolationVersion> violationVersionList = new ArrayList<>();
int i = 1; int i = 1;
if(violationList!=null){ if(violationList!=null){
for(Violation violation: violationList){ for(Violation violation: violationList){
violation.setViolationKey(i++); violation.setViolationKey(i++);
violation.setFbKey(fbKey); violation.setFbKey(fbKey);
ViolationVersion violationVersion = new ViolationVersion();
BeanUtils.copyProperties(violation, violationVersion);
violationVersion.setVersionNo(1);
violationVersionList.add(violationVersion);
} }
violationRepository.saveAll(violationList); violationRepository.saveAll(violationList);
violationVersionRepository.saveAll(violationVersionList);
} }
// 처리현황, 처리현황버전 저장. // 처리현황, 처리현황버전 저장.
ProcessResult processResult = crackdownStatus.getProcessResult();
ProcessResultVersion processResultVersion = new ProcessResultVersion();
processResult.setCdsKey(cdsKey); processResult.setCdsKey(cdsKey);
BeanUtils.copyProperties(processResult, processResultVersion); processResultRepository.save(processResult);
processResultVersion.setVersionNo(1);
Integer prKey = processResultRepository.save(processResult).getPrKey();
processResultVersion.setPrKey(prKey);
processResultVersionRepository.save(processResultVersion);
// 선원정보, 선원정보버전 저장. // 선원정보, 선원정보버전 저장.
List<Sailor> sailorList = crackdownStatus.getSailorList();
if(sailorList != null){ if(sailorList != null){
for(Sailor sailor: sailorList){ for(Sailor sailor: sailorList){
sailor.setFbKey(fbKey); sailor.setFbKey(fbKey);
@ -140,11 +120,10 @@ public class FishingBoatService extends BaseService {
} }
} }
} }
}else{ }else{
// 업데이트시에는 어선정보만 수정. // 업데이트시에는 어선정보만 수정.
cdsKey = crackdownStatus.getCdsKey(); cdsKey = crackdownStatus.getCdsKey();
FishingBoat fishingBoat = crackdownStatus.getFishingBoat(); fbKey = fishingBoat.getFbKey();
FishingBoatVersion newInfo = new FishingBoatVersion(); FishingBoatVersion newInfo = new FishingBoatVersion();
fishingBoat.setCdsKey(cdsKey); fishingBoat.setCdsKey(cdsKey);
fishingBoat.setWrtDt(LocalDateTime.now()); fishingBoat.setWrtDt(LocalDateTime.now());
@ -154,22 +133,61 @@ public class FishingBoatService extends BaseService {
fishingBoatRepository.save(fishingBoat); fishingBoatRepository.save(fishingBoat);
fishingBoatVersionRepository.save(newInfo); fishingBoatVersionRepository.save(newInfo);
// 위반사항 // 위반사항
List<Violation> violationList = crackdownStatus.getViolationList();
if(violationList != null){ if(violationList != null){
List<ViolationVersion> violationVersionList = new ArrayList<>();
int i=1; int i=1;
ViolationVersion lastViolationVersion = violationVersionRepository.findTop1ByFbKeyOrderByVersionNoDesc(fishingBoat.getFbKey()).orElse(null);
for(Violation violation: violationList){ for(Violation violation: violationList){
violation.setFbKey(fishingBoat.getFbKey()); violation.setFbKey(fishingBoat.getFbKey());
violation.setViolationKey(i++); violation.setViolationKey(i++);
}
violationRepository.saveAll(violationList);
}
}
if(!crackdownStatus.getStatus().equals("DST001")) {
CrackdownStatusVersion crackdownStatusVersion = new CrackdownStatusVersion();
BeanUtils.copyProperties(crackdownStatus, crackdownStatusVersion);
crackdownStatusVersion.setVersionNo(1);
crackdownStatusVersionRepository.save(crackdownStatusVersion);
FishingBoatVersion fishingBoatVersion = new FishingBoatVersion();
BeanUtils.copyProperties(fishingBoat, fishingBoatVersion);
fishingBoatVersion.setVersionNo(1);
fishingBoatVersionRepository.save(fishingBoatVersion);
List<ViolationVersion> violationVersionList = new ArrayList<>();
ViolationVersion lastViolationVersion = violationVersionRepository.findTop1ByFbKeyOrderByVersionNoDesc(fishingBoat.getFbKey()).orElse(null);
if(violationList!=null){
for(Violation violation: violationList){
ViolationVersion violationVersion = new ViolationVersion(); ViolationVersion violationVersion = new ViolationVersion();
BeanUtils.copyProperties(violation, violationVersion); BeanUtils.copyProperties(violation, violationVersion);
violationVersion.setVersionNo(lastViolationVersion.getVersionNo()+1); violationVersion.setVersionNo(lastViolationVersion.getVersionNo()+1);
violationVersionList.add(violationVersion); violationVersionList.add(violationVersion);
} }
violationRepository.saveAll(violationList);
violationVersionRepository.saveAll(violationVersionList); violationVersionRepository.saveAll(violationVersionList);
} }
ProcessResultVersion processResultVersion = new ProcessResultVersion();
BeanUtils.copyProperties(processResult, processResultVersion);
processResultVersion.setVersionNo(1);
processResultVersionRepository.save(processResultVersion);
if(sailorList != null){
for(Sailor sailor: sailorList){
sailor.setFbKey(fbKey);
SailorVersion sailorVersion = new SailorVersion();
Integer sailorKey = sailorRepository.save(sailor).getSailorKey();
BeanUtils.copyProperties(sailor, sailorVersion);
sailorVersion.setVersionNo(1);
sailorVersion.setSailorKey(sailorKey);
Integer versionNo = sailorVersionRepository.save(sailorVersion).getVersionNo();
if(sailor.getPosition().equals("POS001")){
//선장은 사진이 같이 업로드 됨.
if(sailorFiles!= null && sailorFiles.size()>0) {
saveCaptainPhoto(sailorKey, versionNo, sailorFiles);
}
}
}
}
} }
return cdsKey; return cdsKey;
} }
@ -185,37 +203,7 @@ public class FishingBoatService extends BaseService {
} }
public FileInfo selectSailorFile(Integer sailorKey, Integer fileSeq) { public FileInfo selectSailorFile(Integer sailorKey, Integer fileSeq) {
return captionPhotoFileRepository.findById(new CaptinPhotoFile.CaptinPhotoFileId(sailorKey, fileSeq)).orElse(null); return sailorFileRepository.findById(new SailorFile.SailorFileId(sailorKey, fileSeq)).orElse(null);
}
private CrackdownStatus setWriteInfo(CrackdownStatus crackdownStatus){
FishingBoat fishingBoat = crackdownStatus.getFishingBoat();
fishingBoat.setWrtDt(LocalDateTime.now());
crackdownStatus.setWrtOrgan(fishingBoat.getWrtOrgan());
crackdownStatus.setWrtPart(fishingBoat.getWrtPart());
crackdownStatus.setWrtUserSeq(fishingBoat.getWrtUserSeq());
crackdownStatus.setWrtUserNm(fishingBoat.getWrtUserNm());
crackdownStatus.setWrtUserGrd(fishingBoat.getWrtUserGrd());
crackdownStatus.setWrtDt(LocalDateTime.now());
crackdownStatus.getProcessResult().setWrtOrgan(fishingBoat.getWrtOrgan());
crackdownStatus.getProcessResult().setWrtPart(fishingBoat.getWrtPart());
crackdownStatus.getProcessResult().setWrtUserSeq(fishingBoat.getWrtUserSeq());
crackdownStatus.getProcessResult().setWrtUserNm(fishingBoat.getWrtUserNm());
crackdownStatus.getProcessResult().setWrtUserGrd(fishingBoat.getWrtUserGrd());
crackdownStatus.getProcessResult().setWrtDt(LocalDateTime.now());
if(crackdownStatus.getSailorList()!=null){
for(Sailor sailor: crackdownStatus.getSailorList()){
sailor.setWrtOrgan(fishingBoat.getWrtOrgan());
sailor.setWrtPart(fishingBoat.getWrtPart());
sailor.setWrtUserSeq(fishingBoat.getWrtUserSeq());
sailor.setWrtUserNm(fishingBoat.getWrtUserNm());
sailor.setWrtUserGrd(fishingBoat.getWrtUserGrd());
sailor.setWrtDt(LocalDateTime.now());
}
}
return crackdownStatus;
} }
private void saveCaptainPhoto(Integer sailorKey, Integer versionNo, List<MultipartFile> fileList){ private void saveCaptainPhoto(Integer sailorKey, Integer versionNo, List<MultipartFile> fileList){
@ -227,7 +215,7 @@ public class FishingBoatService extends BaseService {
String originalFilename = file.getOriginalFilename(); String originalFilename = file.getOriginalFilename();
int extnIdx = originalFilename.lastIndexOf("."); int extnIdx = originalFilename.lastIndexOf(".");
CaptinPhotoFile fileInfo = new CaptinPhotoFile(); SailorFile fileInfo = new SailorFile();
fileInfo.setSailorKey(sailorKey); fileInfo.setSailorKey(sailorKey);
fileInfo.setFileSeq(fileSeq++); fileInfo.setFileSeq(fileSeq++);
fileInfo.setOrigNm(originalFilename.substring(0, extnIdx)); fileInfo.setOrigNm(originalFilename.substring(0, extnIdx));
@ -235,11 +223,24 @@ public class FishingBoatService extends BaseService {
fileInfo.setConvNm(saveName); fileInfo.setConvNm(saveName);
fileInfo.setFileSize(calculationSize(file.getSize())); fileInfo.setFileSize(calculationSize(file.getSize()));
fileInfo.setSavePath(path); fileInfo.setSavePath(path);
CaptinPhotoVersion versionInfo = new CaptinPhotoVersion(); SailorFileVersion versionInfo = new SailorFileVersion();
BeanUtils.copyProperties(fileInfo, versionInfo); BeanUtils.copyProperties(fileInfo, versionInfo);
versionInfo.setVersionNo(versionNo); versionInfo.setVersionNo(versionNo);
captionPhotoFileRepository.save(fileInfo); sailorFileRepository.save(fileInfo);
captionPhotoVersionRepository.save(versionInfo); sailorFileVersionRepository.save(versionInfo);
} }
} }
public int saveFishingBoatOnly(int cdsKey, FishingBoat fishingBoat) {
fishingBoat.setCdsKey(cdsKey);
int fbKey = fishingBoatRepository.save(fishingBoat).getFbKey();
if(!fishingBoat.getStatus().equals("DST001")){
FishingBoatVersion lastVersion = fishingBoatVersionRepository.findTop1ByFbKeyOrderByVersionNoDesc(fbKey).orElse(null);
FishingBoatVersion fishingBoatVersion = new FishingBoatVersion();
BeanUtils.copyProperties(fishingBoat, fishingBoatVersion);
fishingBoatVersion.setVersionNo(lastVersion==null?1:(lastVersion.getVersionNo()+1));
fishingBoatVersionRepository.save(fishingBoatVersion);
}
return fbKey;
}
} }

View File

@ -22,58 +22,58 @@ import java.util.List;
@RequiredArgsConstructor @RequiredArgsConstructor
public class ProcessResultService extends BaseService { public class ProcessResultService extends BaseService {
private final ProcessResultMapper processResultMapper; private final ProcessResultMapper processResultMapper;
private final CrackdownStatusRepository crackdownStatusRepository; private final CrackdownStatusRepository crackdownStatusRepository;
private final FishingBoatRepository fishingBoatRepository; private final FishingBoatRepository fishingBoatRepository;
private final ViolationRepository violationRepository; private final ViolationRepository violationRepository;
private final ProcessResultRepository processResultRepository; private final ProcessResultRepository processResultRepository;
private final ProcessResultVersionRepository processResultVersionRepository; private final ProcessResultVersionRepository processResultVersionRepository;
public List<ProcessResult> selectProcessResultList(ProcessResult processResult) { public List<ProcessResult> selectProcessResultList(ProcessResult processResult) {
return processResultMapper.selectProcessResultList(processResult); return processResultMapper.selectProcessResultList(processResult);
}
public Integer selectProcessResultListCnt(ProcessResult processResult) {
return processResultMapper.selectProcessResultListCnt(processResult);
}
public ProcessResult selectProcessResult(Integer prKey) {
return processResultRepository.findById(prKey).orElse(null);
}
public List<ProcessResultVersion> 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) {
violationRepository.deleteAllByIdInQuery(processResult.getCrackdownStatus().getViolationDeleteKeyList());
} }
public Integer selectProcessResultListCnt(ProcessResult processResult) { if (processResult.getExecutionDetailEtc() != null) {
return processResultMapper.selectProcessResultListCnt(processResult); processResult.setExecutionDetail(processResult.getExecutionDetailEtc());
} }
public ProcessResult selectProcessResult(Integer prKey) { Integer prKey = 0;
return processResultRepository.findById(prKey).orElse(null); ProcessResult existingProcessResult = processResultRepository.findByPrKey(processResult.getPrKey()).orElse(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);
} }
public List<ProcessResultVersion> 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) {
violationRepository.deleteAllByIdInQuery(processResult.getCrackdownStatus().getViolationDeleteKeyList());
}
if (processResult.getExecutionDetailEtc() != null) {
processResult.setExecutionDetail(processResult.getExecutionDetailEtc());
}
Integer prKey = 0;
ProcessResult existingProcessResult = processResultRepository.findByPrKey(processResult.getPrKey()).orElse(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() != null) {
if (processResult.getCrackdownStatus().getCrackdownPoliceEtc() != null) { if (processResult.getCrackdownStatus().getCrackdownPoliceEtc() != null) {
processResult.getCrackdownStatus().setCrackdownPolice(processResult.getCrackdownStatus().getCrackdownPoliceEtc()); processResult.getCrackdownStatus().setCrackdownPolice(processResult.getCrackdownStatus().getCrackdownPoliceEtc());
@ -107,17 +107,29 @@ public class ProcessResultService extends BaseService {
violationRepository.saveAll(processResult.getViolationList()); violationRepository.saveAll(processResult.getViolationList());
}*/ }*/
return prKey; return prKey;
} }
public void saveProcessResultVersion(ProcessResult processResult) { public void saveProcessResultVersion(ProcessResult processResult) {
ProcessResultVersion lastVersion = processResultVersionRepository.findTopByPrKeyOrderByVersionNoDesc(processResult.getPrKey()).orElse(null); ProcessResultVersion lastVersion = processResultVersionRepository.findTopByPrKeyOrderByVersionNoDesc(processResult.getPrKey()).orElse(null);
int versionNo = lastVersion==null?1:(lastVersion.getVersionNo()+1); int versionNo = lastVersion==null?1:(lastVersion.getVersionNo()+1);
ProcessResultVersion processResultVersion = new ProcessResultVersion(); ProcessResultVersion processResultVersion = new ProcessResultVersion();
BeanUtils.copyProperties(processResult, processResultVersion); BeanUtils.copyProperties(processResult, processResultVersion);
processResultVersion.setVersionNo(versionNo); processResultVersion.setVersionNo(versionNo);
processResultVersionRepository.save(processResultVersion); processResultVersionRepository.save(processResultVersion);
}
public void saveProcessResultOnly(int cdsKey, ProcessResult processResult) {
processResult.setCdsKey(cdsKey);
int prKey = processResultRepository.save(processResult).getPrKey();
if(!processResult.getStatus().equals("DST001")){
ProcessResultVersion lastVersion = processResultVersionRepository.findTopByPrKeyOrderByVersionNoDesc(prKey).orElse(null);
ProcessResultVersion processResultVersion = new ProcessResultVersion();
BeanUtils.copyProperties(processResult, processResultVersion);
processResultVersion.setVersionNo(lastVersion==null?1:(lastVersion.getVersionNo()+1));
processResultVersionRepository.save(processResultVersion);
} }
}
} }

View File

@ -3,6 +3,8 @@ package com.dbnt.faisp.main.faStatistics.crackdownsStatus.service;
import com.dbnt.faisp.config.BaseService; import com.dbnt.faisp.config.BaseService;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.mapper.SailorMapper; import com.dbnt.faisp.main.faStatistics.crackdownsStatus.mapper.SailorMapper;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.SailorFile;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.SailorFileVersion;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.crackdownStatus.CrackdownStatus; import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.crackdownStatus.CrackdownStatus;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.fishingBoat.FishingBoat; import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.fishingBoat.FishingBoat;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.fishingBoat.Violation; import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.fishingBoat.Violation;
@ -14,99 +16,145 @@ import lombok.RequiredArgsConstructor;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.util.List; import java.util.List;
import java.util.UUID;
@Service @Service
@RequiredArgsConstructor @RequiredArgsConstructor
public class SailorService extends BaseService { public class SailorService extends BaseService {
private final SailorMapper sailorMapper; private final SailorMapper sailorMapper;
private final CrackdownStatusRepository crackdownStatusRepository; private final CrackdownStatusRepository crackdownStatusRepository;
private final FishingBoatRepository fishingBoatRepository; private final FishingBoatRepository fishingBoatRepository;
private final ViolationRepository violationRepository; private final ViolationRepository violationRepository;
private final ProcessResultRepository processResultRepository; private final SailorRepository sailorRepository;
private final SailorRepository sailorRepository; private final SailorVersionRepository sailorVersionRepository;
private final SailorVersionRepository sailorVersionRepository; private final SailorFileRepository sailorFileRepository;
private final SailorFileVersionRepository sailorFileVersionRepository;
public List<Sailor> selectSailorList(Sailor sailor) { public List<Sailor> selectSailorList(Sailor sailor) {
return sailorMapper.selectSailorList(sailor); return sailorMapper.selectSailorList(sailor);
}
public Sailor selectSailor(Integer sailorKey) {
return sailorRepository.findById(sailorKey).orElse(null);
}
public List<SailorVersion> selectSailorVersionList(Integer sailorKey) {
return sailorVersionRepository.findBySailorKey(sailorKey);
}
public SailorVersion selectSailorVersion(Integer versionNo, Integer sailorKey) {
return sailorVersionRepository.findByVersionNoAndSailorKey(versionNo, sailorKey);
}
@Transactional
public Integer saveSailor(Sailor sailor) {
if (sailor.getCrackdownStatus().getViolationDeleteKeyList() != null) {
violationRepository.deleteAllByIdInQuery(sailor.getCrackdownStatus().getViolationDeleteKeyList());
}
Integer sailorKey = 0;
Sailor existingSailor = sailorRepository.findBySailorKey(sailor.getSailorKey());
if (existingSailor != null) {
Utils.copyNonNullProperties(sailor, existingSailor);
existingSailor.setViolationList(null);
sailorKey = sailorRepository.save(existingSailor).getSailorKey();
saveSailorVersion(existingSailor);
} else {
sailorKey = sailorRepository.save(sailor).getSailorKey();
saveSailorVersion(sailor);
} }
public Sailor selectSailor(Integer sailorKey) { if (sailor.getCrackdownStatus() != null) {
return sailorRepository.findById(sailorKey).orElse(null); if (sailor.getCrackdownStatus().getCrackdownPoliceEtc() != null) {
sailor.getCrackdownStatus().setCrackdownPolice(sailor.getCrackdownStatus().getCrackdownPoliceEtc());
}
CrackdownStatus existingCrackdownStatus = crackdownStatusRepository.findByCdsKey(sailor.getCrackdownStatus().getCdsKey()).orElse(null);
Utils.copyNonNullProperties(sailor, existingCrackdownStatus);
sailor.setCrackdownStatus(crackdownStatusRepository.save(existingCrackdownStatus));
} }
public List<SailorVersion> selectSailorVersionList(Integer sailorKey) { if (sailor.getFishingBoat() != null) {
return sailorVersionRepository.findBySailorKey(sailorKey); FishingBoat existingFishingBoat = fishingBoatRepository.findByCdsKey(sailor.getCrackdownStatus().getCdsKey()).orElse(null);
Utils.copyNonNullProperties(sailor, existingFishingBoat);
fishingBoatRepository.save(existingFishingBoat);
} }
public SailorVersion selectSailorVersion(Integer versionNo, Integer sailorKey) { if (sailor.getViolationList() != null && sailor.getViolationList().get(0).getViolation() != null) {
return sailorVersionRepository.findByVersionNoAndSailorKey(versionNo, sailorKey); Violation lastViolation = violationRepository.findTopByFbKeyOrderByViolationKeyDesc(sailor.getCrackdownStatus().getFbKey()).orElse(null);
} int violationKey = lastViolation==null?1:(lastViolation.getViolationKey()+1);
@Transactional for(Violation violation: sailor.getViolationList()){
public Integer saveSailor(Sailor sailor) { if (violation.getViolationEtc() != null) {
if (sailor.getCrackdownStatus().getViolationDeleteKeyList() != null) { violation.setViolation(violation.getViolationEtc());
violationRepository.deleteAllByIdInQuery(sailor.getCrackdownStatus().getViolationDeleteKeyList());
} }
Integer sailorKey = 0; violation.setFbKey(sailor.getFishingBoat().getFbKey());
Sailor existingSailor = sailorRepository.findBySailorKey(sailor.getSailorKey()); if (violation.getViolationKey() == null) {
violation.setViolationKey(violationKey);
if (existingSailor != null) { violationKey++;
Utils.copyNonNullProperties(sailor, existingSailor);
existingSailor.setViolationList(null);
sailorKey = sailorRepository.save(existingSailor).getSailorKey();
saveSailorVersion(existingSailor);
} else {
sailorKey = sailorRepository.save(sailor).getSailorKey();
saveSailorVersion(sailor);
} }
}
if (sailor.getCrackdownStatus() != null) { violationRepository.saveAll(sailor.getViolationList());
if (sailor.getCrackdownStatus().getCrackdownPoliceEtc() != null) {
sailor.getCrackdownStatus().setCrackdownPolice(sailor.getCrackdownStatus().getCrackdownPoliceEtc());
}
CrackdownStatus existingCrackdownStatus = crackdownStatusRepository.findByCdsKey(sailor.getCrackdownStatus().getCdsKey()).orElse(null);
Utils.copyNonNullProperties(sailor, existingCrackdownStatus);
sailor.setCrackdownStatus(crackdownStatusRepository.save(existingCrackdownStatus));
}
if (sailor.getFishingBoat() != null) {
FishingBoat existingFishingBoat = fishingBoatRepository.findByCdsKey(sailor.getCrackdownStatus().getCdsKey()).orElse(null);
Utils.copyNonNullProperties(sailor, existingFishingBoat);
fishingBoatRepository.save(existingFishingBoat);
}
if (sailor.getViolationList() != null && sailor.getViolationList().get(0).getViolation() != null) {
Violation lastViolation = violationRepository.findTopByFbKeyOrderByViolationKeyDesc(sailor.getCrackdownStatus().getFbKey()).orElse(null);
int violationKey = lastViolation==null?1:(lastViolation.getViolationKey()+1);
for(Violation violation: sailor.getViolationList()){
if (violation.getViolationEtc() != null) {
violation.setViolation(violation.getViolationEtc());
}
violation.setFbKey(sailor.getFishingBoat().getFbKey());
if (violation.getViolationKey() == null) {
violation.setViolationKey(violationKey);
violationKey++;
}
}
violationRepository.saveAll(sailor.getViolationList());
}
return sailorKey;
} }
public void saveSailorVersion(Sailor sailor) { return sailorKey;
SailorVersion lastVersion = sailorVersionRepository.findTopBySailorKeyOrderByVersionNoDesc(sailor.getSailorKey()).orElse(null); }
int versionNo = lastVersion==null?1:(lastVersion.getVersionNo()+1);
SailorVersion sailorVersion = new SailorVersion(); public void saveSailorVersion(Sailor sailor) {
BeanUtils.copyProperties(sailor, sailorVersion); SailorVersion lastVersion = sailorVersionRepository.findTopBySailorKeyOrderByVersionNoDesc(sailor.getSailorKey()).orElse(null);
sailorVersion.setVersionNo(versionNo); int versionNo = lastVersion==null?1:(lastVersion.getVersionNo()+1);
sailorVersionRepository.save(sailorVersion); SailorVersion sailorVersion = new SailorVersion();
BeanUtils.copyProperties(sailor, sailorVersion);
sailorVersion.setVersionNo(versionNo);
sailorVersionRepository.save(sailorVersion);
}
public void saveSailorOnly(int fbKey, Sailor sailor, List<MultipartFile> sailorFileList) {
sailor.setFbKey(fbKey);
int sailorKey = sailorRepository.save(sailor).getSailorKey();
Integer versionNo = null;
if(!sailor.getStatus().equals("DST001")){
SailorVersion lastVersion = sailorVersionRepository.findTopBySailorKeyOrderByVersionNoDesc(sailorKey).orElse(null);
SailorVersion sailorVersion = new SailorVersion();
BeanUtils.copyProperties(sailor, sailorVersion);
sailorVersion.setVersionNo(lastVersion==null?1:(lastVersion.getVersionNo()));
versionNo = sailorVersionRepository.save(sailorVersion).getVersionNo();
} }
if(sailorFileList!=null){
saveSailorFile(sailorKey, versionNo, sailorFileList);
}
}
private void saveSailorFile(Integer sailorKey, Integer versionNo, List<MultipartFile> fileList){
int fileSeq = 1;
for(MultipartFile file : fileList){
String saveName = UUID.randomUUID().toString();
String path = locationPath+ File.separator+sailorPath;
saveFile(file, new File(path+File.separator+saveName));
String originalFilename = file.getOriginalFilename();
int extnIdx = originalFilename.lastIndexOf(".");
SailorFile fileInfo = new SailorFile();
fileInfo.setSailorKey(sailorKey);
fileInfo.setFileSeq(fileSeq++);
fileInfo.setOrigNm(originalFilename.substring(0, extnIdx));
fileInfo.setFileExtn(originalFilename.substring(extnIdx+1));
fileInfo.setConvNm(saveName);
fileInfo.setFileSize(calculationSize(file.getSize()));
fileInfo.setSavePath(path);
sailorFileRepository.save(fileInfo);
if(versionNo!=null){
SailorFileVersion versionInfo = new SailorFileVersion();
BeanUtils.copyProperties(fileInfo, versionInfo);
versionInfo.setVersionNo(versionNo);
sailorFileVersionRepository.save(versionInfo);
}
}
}
} }

View File

@ -0,0 +1,68 @@
package com.dbnt.faisp.main.faStatistics.crackdownsStatus.service;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.crackdownStatus.CrackdownStatus;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.fishingBoat.FishingBoat;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.sailor.Sailor;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDateTime;
@Service
@RequiredArgsConstructor
public class UnlawfulFishingService {
private final CrackdownStatusService crackdownStatusService;
private final FishingBoatService fishingBoatService;
private final ProcessResultService processResultService;
private final SailorService sailorService;
@Transactional
public Integer saveUnlawfulFishing(CrackdownStatus crackdownStatus){
crackdownStatus = setWriteInfo(crackdownStatus);
int cdsKey = crackdownStatusService.saveCrackdownStatusOnly(crackdownStatus);
int fbKey = fishingBoatService.saveFishingBoatOnly(cdsKey, crackdownStatus.getFishingBoat());
processResultService.saveProcessResultOnly(cdsKey, crackdownStatus.getProcessResult());
for(Sailor sailor: crackdownStatus.getSailorList()){
if(sailor.getPosition().equals("POS001")){
sailorService.saveSailorOnly(fbKey, sailor, crackdownStatus.getSailorFileList());
}else{
sailorService.saveSailorOnly(fbKey, sailor, null);
}
}
return cdsKey;
}
private CrackdownStatus setWriteInfo(CrackdownStatus crackdownStatus){
FishingBoat fishingBoat = crackdownStatus.getFishingBoat();
fishingBoat.setWrtDt(LocalDateTime.now());
crackdownStatus.setWrtOrgan(fishingBoat.getWrtOrgan());
crackdownStatus.setWrtPart(fishingBoat.getWrtPart());
crackdownStatus.setWrtUserSeq(fishingBoat.getWrtUserSeq());
crackdownStatus.setWrtUserNm(fishingBoat.getWrtUserNm());
crackdownStatus.setWrtUserGrd(fishingBoat.getWrtUserGrd());
crackdownStatus.setWrtDt(LocalDateTime.now());
crackdownStatus.setStatus(fishingBoat.getStatus());
crackdownStatus.getProcessResult().setWrtOrgan(fishingBoat.getWrtOrgan());
crackdownStatus.getProcessResult().setWrtPart(fishingBoat.getWrtPart());
crackdownStatus.getProcessResult().setWrtUserSeq(fishingBoat.getWrtUserSeq());
crackdownStatus.getProcessResult().setWrtUserNm(fishingBoat.getWrtUserNm());
crackdownStatus.getProcessResult().setWrtUserGrd(fishingBoat.getWrtUserGrd());
crackdownStatus.getProcessResult().setWrtDt(LocalDateTime.now());
crackdownStatus.getProcessResult().setStatus(fishingBoat.getStatus());
if(crackdownStatus.getSailorList()!=null){
for(Sailor sailor: crackdownStatus.getSailorList()){
sailor.setWrtOrgan(fishingBoat.getWrtOrgan());
sailor.setWrtPart(fishingBoat.getWrtPart());
sailor.setWrtUserSeq(fishingBoat.getWrtUserSeq());
sailor.setWrtUserNm(fishingBoat.getWrtUserNm());
sailor.setWrtUserGrd(fishingBoat.getWrtUserGrd());
sailor.setWrtDt(LocalDateTime.now());
sailor.setStatus(fishingBoat.getStatus());
}
}
return crackdownStatus;
}
}

View File

@ -61,7 +61,9 @@ $(document).on('click', '#affairModalBtn', function (){
url: '/affairResult/affairListModal', url: '/affairResult/affairListModal',
data: { data: {
startDate: workStartDt, startDate: workStartDt,
endDate: workEndDt endDate: workEndDt,
affairCategory:"CAT215",
affairStatus:"DST006"
}, },
type: 'GET', type: 'GET',
dataType:"html", dataType:"html",

View File

@ -42,12 +42,16 @@
<th:block th:each="commonCode:${session.commonCode.get('DST')}"> <th:block th:each="commonCode:${session.commonCode.get('DST')}">
<td th:if="${affair.affairStatus eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></td> <td th:if="${affair.affairStatus eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></td>
</th:block> </th:block>
<th:block th:if="${affair.affairStatus eq 'DST006'}"> <th:block th:if="${affair.affairStatus eq 'DST006'}">
<th:block th:each="ratingCode:${session.commonCode.get('AAR')}"> <td class="affairRate">
<td class="affairRate" th:if="${ratingCode.itemCd eq affair.affairRate}" th:text="${ratingCode.itemValue}"></td> <th:block th:each="ratingCode:${session.commonCode.get('AAR')}">
</th:block> <th:block th:if="${ratingCode.itemCd eq affair.affairRate}" th:text="${ratingCode.itemValue}"></th:block>
</th:block>
</td>
<td class="organUp" th:text="${affair.organUp eq 'T'?'O':'X'}"></td> <td class="organUp" th:text="${affair.organUp eq 'T'?'O':'X'}"></td>
</th:block> </th:block>
<th:block th:unless="${affair.affairStatus eq 'DST006'}"> <th:block th:unless="${affair.affairStatus eq 'DST006'}">
<td></td> <td></td>
<td></td> <td></td>