diff --git a/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/AsfCovController.java b/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/AsfCovController.java index 9aaabeef..e4f8a401 100644 --- a/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/AsfCovController.java +++ b/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/AsfCovController.java @@ -10,13 +10,15 @@ import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.processResult.Pro import com.dbnt.faisp.main.faStatistics.crackdownsStatus.service.AsfCovService; import com.dbnt.faisp.main.userInfo.model.UserInfo; import lombok.RequiredArgsConstructor; +import oracle.jdbc.proxy.annotation.Post; import org.springframework.security.core.annotation.AuthenticationPrincipal; import org.springframework.stereotype.Service; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartHttpServletRequest; import org.springframework.web.servlet.ModelAndView; +import java.time.LocalDateTime; +import java.util.List; @RestController @@ -51,7 +53,7 @@ public class AsfCovController { asfCov.setWrtUserSeq(loginUser.getUserSeq()); asfCov.setWrtUserGrd(loginUser.getTitleCd()); asfCov.setWrtUserNm(loginUser.getUserNm()); - asfCov.setWrtDt(loginUser.getWrtDt()); + asfCov.setWrtDt(LocalDateTime.now()); } mav.addObject("asfCov", asfCov); mav.addObject("userSeq", loginUser.getUserSeq()); @@ -69,6 +71,18 @@ public class AsfCovController { return mav; } + + @PostMapping("/saveContent") + public Integer saveContent (AsfCov asfCov){ + return asfCovService.saveContent(asfCov); + } + + @PostMapping("/deleteContent") + @ResponseBody + public void deleteContent(@RequestBody AsfCov asfCov){ + asfCovService.deleteContent(asfCov); + } + } diff --git a/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/mapper/AsfCovMapper.java b/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/mapper/AsfCovMapper.java index d859bb70..7cdeb03d 100644 --- a/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/mapper/AsfCovMapper.java +++ b/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/mapper/AsfCovMapper.java @@ -1,7 +1,8 @@ package com.dbnt.faisp.main.faStatistics.crackdownsStatus.mapper; import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.asfCov.AsfCov; -import com.dbnt.faisp.main.ivsgtMgt.majorStatus.model.MajorStatus; +import com.dbnt.faisp.main.ivsgtMgt.boardInvestigation.model.ArrestType; + import org.apache.ibatis.annotations.Mapper; import java.util.List; @@ -10,7 +11,7 @@ import java.util.List; public interface AsfCovMapper { List selectAsfCovList(AsfCov asfCov); Integer selectAsfCovListCnt(AsfCov asfCov); - + // ArrestType selectArrestType(AsfCov asfCov); List selectAsfCovListWhere(AsfCov asfCov); } diff --git a/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/model/asfCov/AsfCov.java b/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/model/asfCov/AsfCov.java index 1f843c63..4d111747 100644 --- a/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/model/asfCov/AsfCov.java +++ b/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/model/asfCov/AsfCov.java @@ -4,15 +4,15 @@ import com.dbnt.faisp.config.BaseModel; import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.crackdownStatus.CrackdownStatus; import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.crackdownStatus.CrackdownStatusBaseEntity; import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.fishingBoat.FishingBoat; +import com.dbnt.faisp.main.ivsgtMgt.majorStatus.model.MajorFile; import io.micrometer.core.annotation.Counted; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; +import lombok.*; import org.hibernate.annotations.DynamicInsert; import org.hibernate.annotations.DynamicUpdate; import org.springframework.format.annotation.DateTimeFormat; import javax.persistence.*; +import java.io.Serializable; import java.time.LocalDateTime; @Getter @@ -22,12 +22,13 @@ import java.time.LocalDateTime; @DynamicInsert @DynamicUpdate @Table(name="asfcov_status") +@IdClass(AsfCov.AsfCovId.class) public class AsfCov extends BaseModel { @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "asfcov_key") private Integer asfCovKey; + @Id @Column(name="version_no") private Integer versionNo; @@ -71,106 +72,36 @@ public class AsfCov extends BaseModel { @Column(name = "wrt_part") private String wrtPart; + @Column(name = "content_status") + private String contentStatus; + //////////////////////////////////////////////////////////////////////// @Transient - private CrackdownStatus crackdownStatus; - - @Column(name = "case_num") private String caseNum; - - @Column(name = "case_police_officer") + @Transient private String casePoliceOfficer; - - @Column(name = "crackdown_boat") + @Transient + private String crackdownPolice; + @Transient private String crackdownBoat; - - @Column(name = "napo_dt") - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm") - private LocalDateTime napoDt; - - @Column(name = "napo_sea_point_lon") - private String napoSeaPointLon; - - @Column(name = "napo_sea_point_lat") - private String napoSeaPointLat; - - @Column(name = "napo_sea_point_detail") - private String napoSeaPointDetail; - - @Column(name = "invasion_type") - private String invasionType; - - @Column(name = "nll") - private String nll; - - @Column(name = "case_agency") + @Transient + private String napoDt; + @Transient + private String boatNameKr; + @Transient private String caseAgency; - @Column(name = "crackdown_police") - private String crackdownPolice; - - @Column(name = "mmsi") - private String mmsi; - - @Column(name = "field_ivsgt") - private String fieldIvsgt; - - @Column(name = "obstr_exspd_cnt") - private Integer obstrExspdCnt; - - @Column(name = "person_damage_cnt") - private Integer personDamageCnt; - - @Column(name = "person_damage_amount") - private Integer personDamageAmount; - - @Column(name = "person_damage_detail") - private String personDamageDetail; - - @Column(name = "material_damage_cnt") - private Integer materialDamageCnt; - - @Column(name = "material_damage_amount") - private Integer materialDamageAmount; - - @Column(name = "material_damage_detail") - private String materialDamageDetail; - - @Column(name = "field_ivsgt_napo_dt") - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm") - private LocalDateTime fieldIvsgtNapoDt; - - @Column(name = "field_ivsgt_release_dt") - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm") - private LocalDateTime fieldIvsgtReleaseDt; - - @Column(name = "field_ivsgt_time_taken") - private String fieldIvsgtTimeTaken; - - @Column(name = "pressurized_start_dt") - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm") - private LocalDateTime pressurizedStartDt; - - @Column(name = "pressurized_end_dt") - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm") - private LocalDateTime pressurizedEndDt; - - @Column(name = "distance") - private String distance; - - //////////////////////////////////////////////////////////// - - @Transient - private FishingBoat fishingBoat; - - @Column(name = "boat_name_kr") - private String boatNameKr; - @Column(name = "boat_name_cn") - private String boatNameCn; - + @Embeddable + @Data + @NoArgsConstructor + @AllArgsConstructor + public static class AsfCovId implements Serializable { + private Integer asfCovKey; + private Integer versionNo; + } } diff --git a/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/repository/AsfCovRepository.java b/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/repository/AsfCovRepository.java index 5bf25b8f..20f9e5e9 100644 --- a/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/repository/AsfCovRepository.java +++ b/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/repository/AsfCovRepository.java @@ -2,13 +2,17 @@ package com.dbnt.faisp.main.faStatistics.crackdownsStatus.repository; import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.asfCov.AsfCov; +import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.crackdownStatus.CrackdownStatus; import org.springframework.data.jpa.repository.JpaRepository; import java.util.List; import java.util.Optional; public interface AsfCovRepository extends JpaRepository { - - // void deleteByAsfCov(Integer asfcovKey); + Optional findByCdsKey(Integer cdsKey); + Optional findByAsfCovKey(Integer asfCovKey); + // void deleteByAsfCov(Integer asfCovKey); + Optional findTop1ByAsfCovKeyOrderByVersionNoDesc(Integer asfCovKey); + Optional findTop1ByOrderByAsfCovKeyDesc(); } diff --git a/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/service/AsfCovService.java b/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/service/AsfCovService.java index a7f21316..563243da 100644 --- a/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/service/AsfCovService.java +++ b/src/main/java/com/dbnt/faisp/main/faStatistics/crackdownsStatus/service/AsfCovService.java @@ -3,11 +3,17 @@ package com.dbnt.faisp.main.faStatistics.crackdownsStatus.service; import com.dbnt.faisp.config.BaseService; import com.dbnt.faisp.main.faStatistics.crackdownsStatus.mapper.AsfCovMapper; import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.asfCov.AsfCov; +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.repository.AsfCovRepository; -import com.dbnt.faisp.main.ivsgtMgt.majorStatus.model.MajorStatus; + +import com.dbnt.faisp.main.faStatistics.crackdownsStatus.repository.CrackdownStatusRepository; +import com.dbnt.faisp.main.faStatistics.crackdownsStatus.repository.FishingBoatRepository; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import java.time.format.DateTimeFormatter; import java.util.List; @Service @@ -16,6 +22,8 @@ public class AsfCovService extends BaseService { private final AsfCovMapper asfCovMapper; private final AsfCovRepository asfCovRepository; + private final CrackdownStatusRepository crackdownStatusRepository; + private final FishingBoatRepository fishingBoatRepository; public List selectAsfCovList(AsfCov asfCov){ return asfCovMapper.selectAsfCovList(asfCov); @@ -25,9 +33,44 @@ public class AsfCovService extends BaseService { return asfCovMapper.selectAsfCovListCnt(asfCov); } - public AsfCov selectAsfCov(Integer asfcovKey) { - AsfCov asfCov= asfCovRepository.findById(asfcovKey).orElse(null); - + public AsfCov selectAsfCov(Integer asfCovKey) { + AsfCov asfCov= asfCovRepository.findTop1ByAsfCovKeyOrderByVersionNoDesc(asfCovKey).orElse(null); + CrackdownStatus cs = crackdownStatusRepository.findByCdsKey(asfCov.getCdsKey()).orElse(null); + FishingBoat fb = fishingBoatRepository.findByCdsKey(asfCov.getCdsKey()).orElse(null); + if(fb!=null){ + asfCov.setBoatNameKr(fb.getBoatNameKr()); + } + if(cs!=null){ + asfCov.setCaseNum(cs.getCaseNum()); + asfCov.setCaseAgency(cs.getCaseAgency()); + asfCov.setCasePoliceOfficer(cs.getCasePoliceOfficer()); + asfCov.setCrackdownPolice(cs.getCrackdownPolice()); + asfCov.setCrackdownBoat(cs.getCrackdownBoat()); + if(cs.getNapoDt()!=null){ + asfCov.setNapoDt(cs.getNapoDt().format(DateTimeFormatter.ofPattern("yyyy-MM-dd"))); + } + } return asfCov; } + + @Transactional + public Integer saveContent(AsfCov asfCov) { + if(asfCov.getAsfCovKey()==null){ + AsfCov lastData = asfCovRepository.findTop1ByOrderByAsfCovKeyDesc().orElse(null); + asfCov.setAsfCovKey(lastData==null?1:(lastData.getAsfCovKey()+1)); + asfCov.setVersionNo(1); + }else{ + asfCov.setVersionNo(asfCov.getVersionNo()+1); + } + asfCovRepository.save(asfCov); + return asfCov.getAsfCovKey(); + } + + @Transactional + public void deleteContent(AsfCov asfCov){ + asfCov=asfCovRepository.findById(asfCov.getAsfCovKey()).orElse(null); + asfCov.setContentStatus("DST008"); + } + + } diff --git a/src/main/java/com/dbnt/faisp/main/ivsgtMgt/majorStatus/service/MajorStatusService.java b/src/main/java/com/dbnt/faisp/main/ivsgtMgt/majorStatus/service/MajorStatusService.java index 5107ee04..c1f40466 100644 --- a/src/main/java/com/dbnt/faisp/main/ivsgtMgt/majorStatus/service/MajorStatusService.java +++ b/src/main/java/com/dbnt/faisp/main/ivsgtMgt/majorStatus/service/MajorStatusService.java @@ -45,11 +45,6 @@ public class MajorStatusService extends BaseService { public MajorStatus selectMajor(Integer majorKey) { MajorStatus majorStatus= majorStatusRepository.findById(majorKey).orElse(null); majorStatus.setFileList(majorFileRepository.findByMajorKey(majorKey)); -// List commentList = publicCommentRepository.findByPublicKeyAndParentCommentOrderByCommentKeyAsc(publicKey, null); -// for(PublicComment comment: commentList){ -// comment.setChildCommentList(publicCommentRepository.findByPublicKeyAndParentCommentOrderByCommentKeyAsc(publicKey, comment.getCommentKey())); -// } - // publicBoard.setCommentList(commentList); return majorStatus; } diff --git a/src/main/resources/mybatisMapper/AsfCovMapper.xml b/src/main/resources/mybatisMapper/AsfCovMapper.xml index 5d3920db..75164a25 100644 --- a/src/main/resources/mybatisMapper/AsfCovMapper.xml +++ b/src/main/resources/mybatisMapper/AsfCovMapper.xml @@ -8,29 +8,30 @@ a.content_status <> 'DST008' - - and a.major_type = #{majorType} + + AND case_num = #{caseNum} + + + AND napo_dt::DATE = #{napoDt}::DATE + + + AND case_agency = #{caseAgency} + + + AND crackdown_police = #{crackdownPolice} + + + AND crackdown_boat = #{crackdownBoat} + + + AND boat_name_kr LIKE CONCAT('%', #{boatNameKr}, '%') - and a.wrt_organ = #{wrtOrgan} - - - AND a.content_title LIKE CONCAT('%', #{contentTitle}, '%') + and wrt_organ = #{wrtOrgan} - AND a.wrt_user_nm LIKE CONCAT('%', #{wrtUserNm}, '%') + AND wrt_user_nm LIKE CONCAT('%', #{wrtUserNm}, '%') - - and a.wrt_dt >= #{startDate}::date - - - and a.wrt_dt <= #{endDate}::date+1 - - - and a.wrt_organ in - - #{organCd} - @@ -52,6 +53,7 @@ a.wrt_dt, a.wrt_organ, a.wrt_part, + a.content_status, cs.cds_key , cs.case_num , cs.napo_dt @@ -111,14 +113,16 @@ INNER JOIN fishing_boat fb ON a.cds_key = fb.cds_key - + order by a.asfcov_key desc limit #{rowCnt} offset #{firstIndex} diff --git a/src/main/resources/static/js/faStatistics/asfCov.js b/src/main/resources/static/js/faStatistics/asfCov.js index 124e158a..dd0fde44 100644 --- a/src/main/resources/static/js/faStatistics/asfCov.js +++ b/src/main/resources/static/js/faStatistics/asfCov.js @@ -9,32 +9,32 @@ $("#jqueryBtn").click(function(){ $(document).on('click', '#saveBtn', function (){ if(confirm("저장하시겠습니까?")){ - if($('#contentTitle').val() == ''){ - alert("제목을 입력해주세요."); - $('#contentTitle').focus(); - return false; - } - if($('#majorType').val() == ''){ - alert("종류를 선택해주세요."); - $('#majorType').focus(); - return false; - } + // if($('#contentTitle').val() == ''){ + // alert("제목을 입력해주세요."); + // $('#contentTitle').focus(); + // return false; + // } + // if($('#majorType').val() == ''){ + // alert("종류를 선택해주세요."); + // $('#majorType').focus(); + // return false; + // } saveContent('DST007'); } }) $(document).on('click', '#saveTempBtn', function (){ if(confirm("임시저장 하시겠습니까?")){ - if($('#contentTitle').val() == ''){ - alert("제목을 입력해주세요."); - $('#contentTitle').focus(); - return false; - } - if($('#majorType').val() == ''){ - alert("종류를 선택해주세요."); - $('#majorType').focus(); - return false; - } + // if($('#contentTitle').val() == ''){ + // alert("제목을 입력해주세요."); + // $('#contentTitle').focus(); + // return false; + // } + // if($('#majorType').val() == ''){ + // alert("종류를 선택해주세요."); + // $('#majorType').focus(); + // return false; + // } saveContent('DST001'); } }) @@ -48,7 +48,7 @@ $(document).on('click', '#addAsfCovBtn', function (){ $(document).on('click', '.tr', function (){ $(".trChkBox").prop("checked", false); $(this).find(".trChkBox").prop("checked", true); - getViewModal(Number($(this).find(".asfCovKey").val())); + getViewModal($(this).attr("data-key")); }) @@ -102,10 +102,10 @@ $(document).on('click', '#deleteMajorBtn', function (){ -function getEditModal(cdsKey){ +function getEditModal(asfCovKey){ $.ajax({ url: '/faStatistics/asfCovEditModal', - data: {cdsKey: cdsKey}, + data: {asfCovKey: asfCovKey}, type: 'GET', dataType:"html", success: function(html){ @@ -141,19 +141,11 @@ function getViewModal(asfCovKey){ function saveContent(contentStatus){ const formData = new FormData($("#asfCovEditForm")[0]); - for(const file of files) { - if(!file.isDelete) - formData.append('uploadFiles', file, file.name); - } - $(".text-decoration-line-through").each(function (idx, el){ - formData.append('fileSeq', $(el).attr("data-fileseq")); - }) formData.append('contentStatus', contentStatus); - formData.append('contentInfo', CrossEditor.GetBodyValue()); $.ajax({ type : 'POST', data : formData, - url : "/ivsgt/saveContent", + url : "/faStatistics/saveContent", processData: false, contentType: false, success : function(result) { @@ -171,10 +163,10 @@ function saveContent(contentStatus){ function contentCheck(formId){ let flag = true; - if(!$("#contentTitle").val()){ - alert("제목을 입력해주세요.") - flag = false; - } + // if(!$("#contentTitle").val()){ + // alert("제목을 입력해주세요.") + // flag = false; + // } flag = fileCheck(flag, files); return flag; @@ -199,9 +191,20 @@ $(document).on('click', '#caseNumBtn', function (){ $(document).on('click', '#getCrackdownBtn', function (){ getEditModal($(".crackdownChkbox:checked").parents(".crackdownTr").attr("data-key")); + const tr= $(".crackdownChkbox:checked").parents(".crackdownTr") + $(".cdsInfo").removeAttr("disable") + $("#cdsKey").val(tr.attr("data-key")) + $("#boatNameKr").val(tr.find(".boatNameKr").val()) + $("#caseNum").val(tr.find(".caseNum").val()) + $("#caseAgency").val(tr.find(".caseAgency").val()) + $("#casePoliceOfficer").val(tr.find(".casePoliceOfficer").val()) + $("#crackdownPolice").val(tr.find(".crackdownPolice").val()) + $("#crackdownBoat").val(tr.find(".crackdownBoat").val()) $("#asfCovSubModal").modal('hide'); + $(".cdsInfo").attr("disable", "disable") }) + $(function(){ const searchFormBoat = $("#searchFormBoat") if(searchFormBoat.val()!==""){ @@ -215,4 +218,18 @@ $(function(){ }); }); +$(document).on('change', '#searchFormPolice', function (){ + const searchFormBoat = $("#searchFormBoat") + searchFormBoat.find("option").hide() + if(this.value !== ""){ + searchFormBoat.removeAttr("disabled") + searchFormBoat.find("."+this.value).show(); + }else{ + searchFormBoat.attr("disabled", "disabled") + } +}) + + + + diff --git a/src/main/resources/templates/common/modal/crackdownStatusModal.html b/src/main/resources/templates/common/modal/crackdownStatusModal.html index 4c0268bd..65c15415 100644 --- a/src/main/resources/templates/common/modal/crackdownStatusModal.html +++ b/src/main/resources/templates/common/modal/crackdownStatusModal.html @@ -193,12 +193,12 @@ - - - - - - + + + + + + @@ -246,7 +246,7 @@ - + diff --git a/src/main/resources/templates/faStatistics/asfCov/asfCov.html b/src/main/resources/templates/faStatistics/asfCov/asfCov.html index d78bcb57..c76788fe 100644 --- a/src/main/resources/templates/faStatistics/asfCov/asfCov.html +++ b/src/main/resources/templates/faStatistics/asfCov/asfCov.html @@ -17,313 +17,67 @@
- - - - - +
+ +
+
+
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
+
+
+
+
+
+
+ +
+
+ +
+
+ +
+
+
+ + + +
+
+
+
+
+ +
+
+
+
+
@@ -365,7 +119,7 @@ - + diff --git a/src/main/resources/templates/faStatistics/asfCov/asfCovEditModal.html b/src/main/resources/templates/faStatistics/asfCov/asfCovEditModal.html index f0d4370e..984cdf7a 100644 --- a/src/main/resources/templates/faStatistics/asfCov/asfCovEditModal.html +++ b/src/main/resources/templates/faStatistics/asfCov/asfCovEditModal.html @@ -1,38 +1,59 @@ +
+
+
+ + + + + + + + + + + + + + + + + +
수정자수정일
+ + + +
+ + + + +
+
+
+ +
+
+
+
\ No newline at end of file