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

청산보고서 견문 불러오기 조건 추가.
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

@ -134,4 +134,16 @@ public class CrackdownStatusService extends BaseService {
crackdownStatusVersionRepository.save(crackdownStatusVersion); 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

@ -120,4 +120,16 @@ public class ProcessResultService extends BaseService {
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,8 +16,11 @@ 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
@ -25,9 +30,10 @@ public class SailorService extends BaseService {
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);
@ -109,4 +115,46 @@ public class SailorService extends BaseService {
sailorVersionRepository.save(sailorVersion); 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'}">
<td class="affairRate">
<th:block th:each="ratingCode:${session.commonCode.get('AAR')}"> <th:block th:each="ratingCode:${session.commonCode.get('AAR')}">
<td class="affairRate" th:if="${ratingCode.itemCd eq affair.affairRate}" th:text="${ratingCode.itemValue}"></td> <th:block th:if="${ratingCode.itemCd eq affair.affairRate}" th:text="${ratingCode.itemValue}"></th:block>
</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>