diff --git a/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/CrackdownStatusController.java b/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/CrackdownStatusController.java index 6fc31d52..46a1c429 100644 --- a/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/CrackdownStatusController.java +++ b/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/CrackdownStatusController.java @@ -86,7 +86,7 @@ public class CrackdownStatusController { crackdownStatus.setSailorList(sailorRepository.findByFbKey(crackdownStatus.getFishingBoat().getFbKey())); }else{ crackdownStatus.setWrtOrgan(loginUser.getOgCd()); - crackdownStatus.setWrtNm(loginUser.getUserNm()); + crackdownStatus.setWrtUserNm(loginUser.getUserNm()); crackdownStatus.setWrtDt(LocalDateTime.now()); crackdownStatus.setFishingBoat(new FishingBoat()); crackdownStatus.getFishingBoat().setWrtOrgan(loginUser.getOgCd()); @@ -94,7 +94,7 @@ public class CrackdownStatusController { crackdownStatus.getFishingBoat().setWrtDt(LocalDateTime.now()); crackdownStatus.setProcessResult(new ProcessResult()); crackdownStatus.getProcessResult().setWrtOrgan(loginUser.getOgCd()); - crackdownStatus.getProcessResult().setWrtNm(loginUser.getUserNm()); + crackdownStatus.getProcessResult().setWrtUserNm(loginUser.getUserNm()); crackdownStatus.getProcessResult().setWrtDt(LocalDateTime.now()); } mav.addObject("crackdownStatus", crackdownStatus); diff --git a/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/model/CrackdownStatus.java b/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/model/CrackdownStatus.java index 85a7006e..84031f50 100644 --- a/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/model/CrackdownStatus.java +++ b/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/model/CrackdownStatus.java @@ -114,11 +114,17 @@ public class CrackdownStatus extends BaseModel { @Column(name = "wrt_organ") private String wrtOrgan; + @Column(name = "wrt_part") + private String wrtPart; + @Column(name = "wrt_user_seq") private Integer wrtUserSeq; - @Column(name = "wrt_nm") - private String wrtNm; + @Column(name = "wrt_user_grd") + private String wrtUserGrd; + + @Column(name = "wrt_user_nm") + private String wrtUserNm; @Column(name = "wrt_dt") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm") @@ -169,4 +175,8 @@ public class CrackdownStatus extends BaseModel { private Integer eezTotal; @Transient private Integer invasionTerritorialWatersTotal; + @Transient + private List violationDeleteKeyList; + @Transient + private List sailorDeleteKeyList; } diff --git a/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/model/ProcessResult.java b/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/model/ProcessResult.java index bdecfd57..48b8620f 100644 --- a/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/model/ProcessResult.java +++ b/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/model/ProcessResult.java @@ -119,20 +119,22 @@ public class ProcessResult extends BaseModel { @Column(name = "wrt_organ") private String wrtOrgan; + @Column(name = "wrt_part") + private String wrtPart; + @Column(name = "wrt_user_seq") private Integer wrtUserSeq; - @Column(name = "wrt_nm") - private String wrtNm; + @Column(name = "wrt_user_grd") + private String wrtUserGrd; + + @Column(name = "wrt_user_nm") + private String wrtUserNm; @Column(name = "wrt_dt") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm") private LocalDateTime wrtDt; - @Column(name = "upd_dt") - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm") - private LocalDateTime updDt; - @Transient private CrackdownStatus crackdownStatus; @Transient diff --git a/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/model/Sailor.java b/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/model/Sailor.java index 493849c7..5b103af7 100644 --- a/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/model/Sailor.java +++ b/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/model/Sailor.java @@ -81,11 +81,17 @@ public class Sailor extends BaseModel { @Column(name = "wrt_organ") private String wrtOrgan; + @Column(name = "wrt_part") + private String wrtPart; + @Column(name = "wrt_user_seq") private Integer wrtUserSeq; - @Column(name = "wrt_nm") - private String wrtNm; + @Column(name = "wrt_user_grd") + private String wrtUserGrd; + + @Column(name = "wrt_user_nm") + private String wrtUserNm; @Column(name = "wrt_dt") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm") diff --git a/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/processResultController.java b/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/processResultController.java index faea7f2d..7821218a 100644 --- a/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/processResultController.java +++ b/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/processResultController.java @@ -29,6 +29,7 @@ public class processResultController { private final ViolationRepository violationRepository; private final CrackdownStatusRepository crackdownStatusRepository; private final FishingBoatRepository fishingBoatRepository; + private final ProcessResultRepository processResultRepository; @RequestMapping("/processResult") public ModelAndView processResult(@AuthenticationPrincipal UserInfo loginUser, ProcessResult processResult) { @@ -82,7 +83,7 @@ public class processResultController { processResult.setViolationList(violationRepository.findByFbKey(processResult.getFbKey())); }else{ processResult.setWrtOrgan(loginUser.getOgCd()); - processResult.setWrtNm(loginUser.getUserNm()); + processResult.setWrtUserNm(loginUser.getUserNm()); processResult.setWrtDt(LocalDateTime.now()); } mav.addObject("processResult", processResult); diff --git a/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/repository/ProcessResultRepository.java b/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/repository/ProcessResultRepository.java index 15e3f014..a8ee234c 100644 --- a/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/repository/ProcessResultRepository.java +++ b/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/repository/ProcessResultRepository.java @@ -5,4 +5,5 @@ import org.springframework.data.jpa.repository.JpaRepository; public interface ProcessResultRepository extends JpaRepository { ProcessResult findByCdsKey(Integer cdsKey); + ProcessResult findByPrKey(Integer prKey); } diff --git a/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/repository/SailorRepository.java b/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/repository/SailorRepository.java index a99e30b2..969d74a0 100644 --- a/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/repository/SailorRepository.java +++ b/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/repository/SailorRepository.java @@ -2,9 +2,18 @@ package com.dbnt.faisp.main.faStatistics.crackdownsStatus.repository; import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.Sailor; import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Modifying; +import org.springframework.data.jpa.repository.Query; +import org.springframework.data.repository.query.Param; +import org.springframework.transaction.annotation.Transactional; import java.util.List; public interface SailorRepository extends JpaRepository { List findByFbKey(Integer fbKey); + + @Transactional + @Modifying + @Query("delete from Sailor s where s.sailorKey in :idList") + void deleteAllByIdInQuery(@Param("idList") List sailorDeleteKeyList); } diff --git a/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/repository/ViolationRepository.java b/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/repository/ViolationRepository.java index 6b7a2b84..3b548527 100644 --- a/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/repository/ViolationRepository.java +++ b/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/repository/ViolationRepository.java @@ -2,9 +2,18 @@ package com.dbnt.faisp.main.faStatistics.crackdownsStatus.repository; import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.Violation; import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Modifying; +import org.springframework.data.jpa.repository.Query; +import org.springframework.data.repository.query.Param; +import org.springframework.transaction.annotation.Transactional; import java.util.List; public interface ViolationRepository extends JpaRepository { List findByFbKey(Integer fbKey); + + @Transactional + @Modifying + @Query("delete from Violation v where v.violationKey in :idList") + void deleteAllByIdInQuery(@Param("idList") List violationDeleteKeyList); } diff --git a/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/service/CrackdownStatusService.java b/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/service/CrackdownStatusService.java index a03c3ece..255d5f2f 100644 --- a/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/service/CrackdownStatusService.java +++ b/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/service/CrackdownStatusService.java @@ -42,6 +42,13 @@ public class CrackdownStatusService extends BaseService { @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()); } diff --git a/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/service/ProcessResultService.java b/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/service/ProcessResultService.java index 2ec8a206..cc3555e1 100644 --- a/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/service/ProcessResultService.java +++ b/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/service/ProcessResultService.java @@ -4,16 +4,19 @@ package com.dbnt.faisp.main.faStatistics.crackdownsStatus.service; import com.dbnt.faisp.config.BaseService; import com.dbnt.faisp.main.faStatistics.crackdownsStatus.mapper.CrackdownStatusMapper; import com.dbnt.faisp.main.faStatistics.crackdownsStatus.mapper.ProcessResultMapper; -import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.CrackdownStatus; -import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.ProcessResult; -import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.Sailor; -import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.Violation; +import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.*; import com.dbnt.faisp.main.faStatistics.crackdownsStatus.repository.*; +import com.dbnt.faisp.util.Utils; import lombok.RequiredArgsConstructor; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.BeanWrapper; +import org.springframework.beans.BeanWrapperImpl; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.HashSet; import java.util.List; +import java.util.Set; @Service @RequiredArgsConstructor @@ -96,22 +99,32 @@ public class ProcessResultService extends BaseService { @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 = processResultRepository.save(processResult).getPrKey(); + ProcessResult existingProcessResult = processResultRepository.findByPrKey(processResult.getPrKey()); + Utils.copyNonNullProperties(processResult, existingProcessResult); + Integer prKey = processResultRepository.save(existingProcessResult).getPrKey(); if (processResult.getCrackdownStatus() != null) { if (processResult.getCrackdownStatus().getCrackdownPoliceEtc() != null) { processResult.getCrackdownStatus().setCrackdownPolice(processResult.getCrackdownStatus().getCrackdownPoliceEtc()); } - processResult.setCrackdownStatus(crackdownStatusRepository.save(processResult.getCrackdownStatus())); + CrackdownStatus existingCrackdownStatus = crackdownStatusRepository.findByCdsKey(processResult.getCdsKey()); + Utils.copyNonNullProperties(processResult, existingCrackdownStatus); + processResult.setCrackdownStatus(crackdownStatusRepository.save(existingCrackdownStatus)); } if (processResult.getFishingBoat() != null) { - fishingBoatRepository.save(processResult.getFishingBoat()); + FishingBoat existingFishingBoat = fishingBoatRepository.findByCdsKey(processResult.getCdsKey()); + Utils.copyNonNullProperties(processResult, existingFishingBoat); + fishingBoatRepository.save(existingFishingBoat); } if (processResult.getViolationList() != null) { diff --git a/src/main/java/com/dbnt/faisp/util/Utils.java b/src/main/java/com/dbnt/faisp/util/Utils.java index f81dcbc1..9851cae1 100644 --- a/src/main/java/com/dbnt/faisp/util/Utils.java +++ b/src/main/java/com/dbnt/faisp/util/Utils.java @@ -6,9 +6,7 @@ import java.io.IOException; import java.io.PrintWriter; import java.text.DecimalFormat; import java.time.format.DateTimeFormatter; -import java.util.Date; -import java.util.List; -import java.util.Map; +import java.util.*; import javax.servlet.http.HttpServletResponse; @@ -30,6 +28,9 @@ import com.dbnt.faisp.main.equip.model.CellPhone; import com.dbnt.faisp.main.equip.model.UseList; import com.dbnt.faisp.main.fipTarget.model.PartInfo; import com.dbnt.faisp.main.fipTarget.model.PartWork; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.BeanWrapper; +import org.springframework.beans.BeanWrapperImpl; public class Utils { @@ -956,7 +957,22 @@ public class Utils { } - - + public static void copyNonNullProperties(Object src, Object target) { + BeanUtils.copyProperties(src, target, getNullPropertyNames(src)); + } + + public static String[] getNullPropertyNames (Object source) { + final BeanWrapper src = new BeanWrapperImpl(source); + java.beans.PropertyDescriptor[] pds = src.getPropertyDescriptors(); + + Set emptyNames = new HashSet<>(); + for(java.beans.PropertyDescriptor pd : pds) { + Object srcValue = src.getPropertyValue(pd.getName()); + if (srcValue == null) emptyNames.add(pd.getName()); + } + String[] result = new String[emptyNames.size()]; + return emptyNames.toArray(result); + } + } diff --git a/src/main/resources/mybatisMapper/CrackdownStatustMapper.xml b/src/main/resources/mybatisMapper/CrackdownStatustMapper.xml index 43f84f41..26012000 100644 --- a/src/main/resources/mybatisMapper/CrackdownStatustMapper.xml +++ b/src/main/resources/mybatisMapper/CrackdownStatustMapper.xml @@ -41,7 +41,7 @@ , cs.distance , cs.wrt_organ , cs.wrt_user_seq - , cs.wrt_nm + , cs.wrt_user_nm , cs.wrt_dt , fb.fb_key , fb.boat_name_kr diff --git a/src/main/resources/static/js/faStatistics/crackdownStatus.js b/src/main/resources/static/js/faStatistics/crackdownStatus.js index febdf1bb..5b58fe4d 100644 --- a/src/main/resources/static/js/faStatistics/crackdownStatus.js +++ b/src/main/resources/static/js/faStatistics/crackdownStatus.js @@ -60,10 +60,14 @@ $(document).on('click', '#violationAddBtn', function (){ $(document).on('click', '#sailorRemoveBtn', function (){ $(this).parent().remove(); + let deleteKey = $(this).parent().children("input[name='sailorKey']").val(); + $("#cdsEditForm").append(''); }); $(document).on('click', '#violationRemoveBtn', function (){ $(this).parent().remove(); + let deleteKey = $(this).parent().children("input[name='violationKey']").val(); + $("#cdsEditForm").append(''); }); $(document).on('change', '.violation', function (){ diff --git a/src/main/resources/static/js/faStatistics/processResult.js b/src/main/resources/static/js/faStatistics/processResult.js index dea0b442..00526fc9 100644 --- a/src/main/resources/static/js/faStatistics/processResult.js +++ b/src/main/resources/static/js/faStatistics/processResult.js @@ -40,6 +40,8 @@ $(document).on('click', '#violationAddBtn', function (){ $(document).on('click', '#violationRemoveBtn', function (){ $(this).parent().remove(); + let deleteKey = $(this).parent().children("input[name='violationKey']").val(); + $("#processResultEditForm").append(''); }); $(document).on('change', '.violation', function (){ diff --git a/src/main/resources/templates/faStatistics/crackdownStatus/crackdownStatusEditModal.html b/src/main/resources/templates/faStatistics/crackdownStatus/crackdownStatusEditModal.html index fa06ac8d..f41cdb0c 100644 --- a/src/main/resources/templates/faStatistics/crackdownStatus/crackdownStatusEditModal.html +++ b/src/main/resources/templates/faStatistics/crackdownStatus/crackdownStatusEditModal.html @@ -17,7 +17,7 @@ - +
@@ -58,7 +58,7 @@
- +
+ + + +
@@ -421,6 +425,7 @@ + diff --git a/src/main/resources/templates/faStatistics/crackdownStatus/crackdownStatusViewModal.html b/src/main/resources/templates/faStatistics/crackdownStatus/crackdownStatusViewModal.html index c6e7d704..c6ed0ecf 100644 --- a/src/main/resources/templates/faStatistics/crackdownStatus/crackdownStatusViewModal.html +++ b/src/main/resources/templates/faStatistics/crackdownStatus/crackdownStatusViewModal.html @@ -17,7 +17,7 @@ - +
diff --git a/src/main/resources/templates/faStatistics/processResult/processResult.html b/src/main/resources/templates/faStatistics/processResult/processResult.html index 2ff81e83..73770f67 100644 --- a/src/main/resources/templates/faStatistics/processResult/processResult.html +++ b/src/main/resources/templates/faStatistics/processResult/processResult.html @@ -100,7 +100,7 @@ - + diff --git a/src/main/resources/templates/faStatistics/processResult/processResultEditModal.html b/src/main/resources/templates/faStatistics/processResult/processResultEditModal.html index 2278a1f0..797fbd32 100644 --- a/src/main/resources/templates/faStatistics/processResult/processResultEditModal.html +++ b/src/main/resources/templates/faStatistics/processResult/processResultEditModal.html @@ -13,7 +13,7 @@ - +
@@ -29,7 +29,7 @@ - +
@@ -61,7 +61,7 @@ - +
+ + + +
@@ -99,7 +103,7 @@
- +
diff --git a/src/main/resources/templates/faStatistics/processResult/processResultViewModal.html b/src/main/resources/templates/faStatistics/processResult/processResultViewModal.html index f5f8abde..5198877e 100644 --- a/src/main/resources/templates/faStatistics/processResult/processResultViewModal.html +++ b/src/main/resources/templates/faStatistics/processResult/processResultViewModal.html @@ -13,7 +13,7 @@ - +