From b01b0213703f5da8927d69713572f2de57c3e56c Mon Sep 17 00:00:00 2001 From: TaehunPark Date: Wed, 8 Feb 2023 11:24:51 +0900 Subject: [PATCH] =?UTF-8?q?fix=20:=20=EB=AA=A8=EB=8B=88=ED=84=B0=EB=A7=81?= =?UTF-8?q?=20=EC=B2=AD=EC=82=B0=EB=B3=B4=EA=B3=A0=20=EC=A4=91=EA=B0=84?= =?UTF-8?q?=EC=A0=80=EC=9E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../monitoring/MonitoringController.java | 4 + .../monitoring/model/MonitoringReport.java | 64 ++++ .../monitoring/model/MonitoringResult.java | 6 + .../model/MonitoringResultClearInfo.java | 45 +++ .../MonitoringReportRepository.java | 17 + .../monitoring/service/MonitoringService.java | 27 +- .../igActivities/fpiMgt/monitoring/result.js | 30 ++ .../fpiMgt/monitoring/resultEditModal.html | 316 +++++++++++++++--- 8 files changed, 468 insertions(+), 41 deletions(-) create mode 100644 src/main/java/com/dbnt/faisp/main/fpiMgt/monitoring/model/MonitoringReport.java create mode 100644 src/main/java/com/dbnt/faisp/main/fpiMgt/monitoring/model/MonitoringResultClearInfo.java create mode 100644 src/main/java/com/dbnt/faisp/main/fpiMgt/monitoring/repository/MonitoringReportRepository.java diff --git a/src/main/java/com/dbnt/faisp/main/fpiMgt/monitoring/MonitoringController.java b/src/main/java/com/dbnt/faisp/main/fpiMgt/monitoring/MonitoringController.java index 7f353821..2210954d 100644 --- a/src/main/java/com/dbnt/faisp/main/fpiMgt/monitoring/MonitoringController.java +++ b/src/main/java/com/dbnt/faisp/main/fpiMgt/monitoring/MonitoringController.java @@ -1,6 +1,7 @@ package com.dbnt.faisp.main.fpiMgt.monitoring; import com.dbnt.faisp.main.authMgt.service.AuthMgtService; +import com.dbnt.faisp.main.codeMgt.service.CodeMgtService; import com.dbnt.faisp.main.fpiMgt.affairPlan.model.PlanApprv; import com.dbnt.faisp.main.fpiMgt.affairPlan.model.PlanBoard; import com.dbnt.faisp.main.fpiMgt.intelligenceNetwork.model.OperationPlan; @@ -25,6 +26,7 @@ import java.util.List; public class MonitoringController { // 첩보수집활동 > 해양외사모니터링 private final MonitoringService monitoringService; private final AuthMgtService authMgtService; + private final CodeMgtService codeMgtService; @GetMapping("/designationList/{type}") public ModelAndView designationList(@AuthenticationPrincipal UserInfo loginUser,@PathVariable("type") String type, MonitoringDesignation md){ @@ -251,6 +253,8 @@ public class MonitoringController { // 첩보수집활동 > 해양외사모니 } mr.setWrtUserSeq(loginUser.getUserSeq()); mav.addObject("mr", mr); + mav.addObject("categoryList", codeMgtService.selectCodeMgtList("RIC")); + mav.addObject("codeList", codeMgtService.selectCodeMgtList("RID")); return mav; } diff --git a/src/main/java/com/dbnt/faisp/main/fpiMgt/monitoring/model/MonitoringReport.java b/src/main/java/com/dbnt/faisp/main/fpiMgt/monitoring/model/MonitoringReport.java new file mode 100644 index 00000000..0bd70150 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/main/fpiMgt/monitoring/model/MonitoringReport.java @@ -0,0 +1,64 @@ +package com.dbnt.faisp.main.fpiMgt.monitoring.model; + +import com.dbnt.faisp.config.FileInfo; +import lombok.*; +import org.hibernate.annotations.DynamicInsert; +import org.hibernate.annotations.DynamicUpdate; +import org.springframework.format.annotation.DateTimeFormat; +import org.springframework.web.multipart.MultipartFile; + +import javax.persistence.*; + +import java.io.File; +import java.io.Serializable; +import java.time.LocalDate; +import java.util.List; + +@Getter +@Setter +@Entity +@NoArgsConstructor +@DynamicInsert +@DynamicUpdate +@Table(name = "monitoring_result_file") +@IdClass(MonitoringReport.MonitoringReportId.class) +public class MonitoringReport extends FileInfo { + @Id + @Column(name = "mr_key") + private Integer mrKey; + @Id + @Column(name = "info_seq") + private Integer infoSeq; + @Column(name = "contact_date") + @DateTimeFormat(pattern = "yyyy-MM-dd") + private LocalDate contactDate; + @Column(name = "write_date") + @DateTimeFormat(pattern = "yyyy-MM-dd") + private LocalDate writeDate; + @Column(name = "report_title") + private String reportTitle; + @Column(name = "orig_nm") + private String origNm; + @Column(name = "conv_nm") + private String convNm; + @Column(name = "file_extn") + private String fileExtn; + @Column(name = "file_size") + private String fileSize; + @Column(name = "save_path") + private String savePath; + + @Transient + private File file; + + + @Embeddable + @Data + @NoArgsConstructor + @AllArgsConstructor + public static class MonitoringReportId implements Serializable { + private Integer mrKey; + private Integer infoSeq; + } + +} diff --git a/src/main/java/com/dbnt/faisp/main/fpiMgt/monitoring/model/MonitoringResult.java b/src/main/java/com/dbnt/faisp/main/fpiMgt/monitoring/model/MonitoringResult.java index 982f47fb..2ea9bc34 100644 --- a/src/main/java/com/dbnt/faisp/main/fpiMgt/monitoring/model/MonitoringResult.java +++ b/src/main/java/com/dbnt/faisp/main/fpiMgt/monitoring/model/MonitoringResult.java @@ -34,6 +34,8 @@ public class MonitoringResult extends BaseModel { private Integer mdKey; @Column(name = "mr_title") private String mrTitle; + @Column(name = "clear_title") + private String clearTitle; @Column(name = "mr_sdate") @DateTimeFormat(pattern = "yyyy-MM-dd") private LocalDate mrSdate; @@ -72,6 +74,10 @@ public class MonitoringResult extends BaseModel { @Transient private List resultInfoList; @Transient + private List clearInfoList; + @Transient + private List reportList; + @Transient private List multipartFileList; @Transient @DateTimeFormat(pattern = "yyyy-MM-dd") diff --git a/src/main/java/com/dbnt/faisp/main/fpiMgt/monitoring/model/MonitoringResultClearInfo.java b/src/main/java/com/dbnt/faisp/main/fpiMgt/monitoring/model/MonitoringResultClearInfo.java new file mode 100644 index 00000000..5cfad26e --- /dev/null +++ b/src/main/java/com/dbnt/faisp/main/fpiMgt/monitoring/model/MonitoringResultClearInfo.java @@ -0,0 +1,45 @@ +package com.dbnt.faisp.main.fpiMgt.monitoring.model; + +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.LocalDate; +import java.time.LocalDateTime; + +@Getter +@Setter +@Entity +@NoArgsConstructor +@DynamicInsert +@DynamicUpdate +@Table(name = "monitoring_result_clear_info") +@IdClass(MonitoringResultClearInfo.MonitoringResultClearInfoId.class) +public class MonitoringResultClearInfo { + @Id + @Column(name = "mr_key") + private Integer mrKey; + @Id + @Column(name = "info_seq") + private Integer infoSeq; + @Column(name = "use_catg") + private String useCatg; + @Column(name = "use_detail") + private String useDetail; + @Column(name = "price") + private Integer price; + + + +@Embeddable + @Data + @NoArgsConstructor + @AllArgsConstructor + public static class MonitoringResultClearInfoId implements Serializable { + private Integer mrKey; + private Integer infoSeq; + } +} diff --git a/src/main/java/com/dbnt/faisp/main/fpiMgt/monitoring/repository/MonitoringReportRepository.java b/src/main/java/com/dbnt/faisp/main/fpiMgt/monitoring/repository/MonitoringReportRepository.java new file mode 100644 index 00000000..a134c92f --- /dev/null +++ b/src/main/java/com/dbnt/faisp/main/fpiMgt/monitoring/repository/MonitoringReportRepository.java @@ -0,0 +1,17 @@ +package com.dbnt.faisp.main.fpiMgt.monitoring.repository; + +import com.dbnt.faisp.main.fpiMgt.monitoring.model.MonitoringReport; + +import org.springframework.data.jpa.repository.JpaRepository; + +import java.util.List; +import java.util.Optional; + + +public interface MonitoringReportRepository extends JpaRepository { + + void deleteByMrKey(Integer mrKey); + + + +} diff --git a/src/main/java/com/dbnt/faisp/main/fpiMgt/monitoring/service/MonitoringService.java b/src/main/java/com/dbnt/faisp/main/fpiMgt/monitoring/service/MonitoringService.java index 9ba7c254..5e68b6e3 100644 --- a/src/main/java/com/dbnt/faisp/main/fpiMgt/monitoring/service/MonitoringService.java +++ b/src/main/java/com/dbnt/faisp/main/fpiMgt/monitoring/service/MonitoringService.java @@ -19,6 +19,7 @@ import com.dbnt.faisp.main.fpiMgt.monitoring.model.MonitoringDesignation; import com.dbnt.faisp.main.fpiMgt.monitoring.model.MonitoringDesignationApprv; import com.dbnt.faisp.main.fpiMgt.monitoring.model.MonitoringDesignationFile; import com.dbnt.faisp.main.fpiMgt.monitoring.model.MonitoringDesignationFile.monitoringDesignationFileId; +import com.dbnt.faisp.main.fpiMgt.monitoring.model.MonitoringReport; import com.dbnt.faisp.main.fpiMgt.monitoring.model.MonitoringResult; import com.dbnt.faisp.main.fpiMgt.monitoring.model.MonitoringResultApprv; import com.dbnt.faisp.main.fpiMgt.monitoring.model.MonitoringResultFile; @@ -27,6 +28,7 @@ import com.dbnt.faisp.main.fpiMgt.monitoring.model.MonitoringResultInfo; import com.dbnt.faisp.main.fpiMgt.monitoring.repository.MonitoringDesignationApprvRepository; import com.dbnt.faisp.main.fpiMgt.monitoring.repository.MonitoringDesignationFileRepository; import com.dbnt.faisp.main.fpiMgt.monitoring.repository.MonitoringDesignationRepository; +import com.dbnt.faisp.main.fpiMgt.monitoring.repository.MonitoringReportRepository; import com.dbnt.faisp.main.fpiMgt.monitoring.repository.MonitoringResultApprvRepository; import com.dbnt.faisp.main.fpiMgt.monitoring.repository.MonitoringResultFileRepository; import com.dbnt.faisp.main.fpiMgt.monitoring.repository.MonitoringResultInfoRepository; @@ -55,6 +57,7 @@ public class MonitoringService extends BaseService { private final MonitoringResultApprvRepository monitoringResultApprvRepository; private final MonitoringResultFileRepository monitoringResultFileRepository; private final MonitoringResultInfoRepository monitoringResultInfoRepository; + private final MonitoringReportRepository monitoringReportRepository; private final MonitoringMapper monitoringMapper; @Transactional @@ -165,7 +168,10 @@ public class MonitoringService extends BaseService { } if (mr.getResultInfoList() != null){ saveResultInfoList(mrKey, mr.getResultInfoList()); - } + } + if (mr.getReportList() != null){ + saveReportList(mrKey, mr.getReportList()); + } if(mr.getMrState().equals("DST002")){ //작성완료일 때 계장 결재 사용자에게 알림 발송. userAlarmService.sendAlarmToApprvUser(mrKey, mr.getWrtOrgan(), "APC003", 37, "해양외사 모니터링 모니터링보고에 결재대기 문서가 있습니다."); @@ -213,6 +219,25 @@ public class MonitoringService extends BaseService { } monitoringResultInfoRepository.saveAll(resultInfoList); } + + private void saveReportList(Integer mrKey, List reportList){ + //monitoringReportRepository.deleteByMrKey(mrKey); + for(MonitoringReport info: reportList){ + MultipartFile file = (MultipartFile) info.getFile(); + String saveName = UUID.randomUUID().toString(); + String path = locationPath+monitoringPath; + saveFile(file, new File(path+File.separator+saveName)); + String originalFilename = file.getOriginalFilename(); + int extnIdx = originalFilename.lastIndexOf("."); + info.setMrKey(mrKey); + info.setOrigNm(originalFilename.substring(0, extnIdx)); + info.setFileExtn(originalFilename.substring(extnIdx+1)); + info.setConvNm(saveName); + info.setFileSize(calculationSize(file.getSize())); + info.setSavePath(path); + monitoringReportRepository.save(info); + } + } public List selectResultList(MonitoringResult mr) { return monitoringMapper.selectResultList(mr); diff --git a/src/main/resources/static/js/igActivities/fpiMgt/monitoring/result.js b/src/main/resources/static/js/igActivities/fpiMgt/monitoring/result.js index afd06c4e..61a367db 100644 --- a/src/main/resources/static/js/igActivities/fpiMgt/monitoring/result.js +++ b/src/main/resources/static/js/igActivities/fpiMgt/monitoring/result.js @@ -92,6 +92,21 @@ $(document).on('click', '#resultInfoAddBtn', function (){ }); }) +$(document).on('click', '#clearInfoAddBtn', function (){ + const infoFm = $("#clearIinfoFmOrigin").children().clone(); + $("#clearInfoRow").append(infoFm); +}) + +$(document).on('click', '#monitoringInfoAddBtn', function (){ + const infoFm = $("#monitoringInfoFmOrigin").children().clone(); + $("#monitoringInfoRow").append(infoFm); + infoFm.find(".contactDate,.writeDate").datepicker({ + format: "yyyy-mm-dd", + language: "ko", + autoclose: true + }); +}) + $(document).on('click', '#editBtn', function (){ $("#resultViewModal").modal('hide'); getResultEditModal($(this).attr("data-mrkey")); @@ -153,6 +168,14 @@ function saveResult(mrState){ formData.append('resultInfoList['+(idx)+'].contactEtime', $(div).find(".contactEtime").val()); formData.append('resultInfoList['+(idx)+'].contactInfo', $(div).find(".contactInfo").val()); + }); + $.each($("#monitoringInfoRow").find(".infoRow"), function (idx, div){ + formData.append('reportList['+(idx)+'].infoSeq', idx+1); + formData.append('reportList['+(idx)+'].contactDate', $(div).find(".contactDate").val()); + formData.append('reportList['+(idx)+'].writeDate', $(div).find(".writeDate").val()); + formData.append('reportList['+(idx)+'].reportTitle', $(div).find(".reportTitle").val()); + formData.append('reportList['+(idx)+'].file', $(div).find(".file").val()); + }); $.ajax({ type : 'POST', @@ -224,3 +247,10 @@ $(document).on('click', '.rowDeleteBtn', function (){ $(this).parents(".infoRow").remove(); }) +$(document).on('click', '.rowDeleteBtn2', function (){ + $(this).parents(".clearInfoRow").remove(); +}) + +$(document).on('click', '.rowDeleteBtn3', function (){ + $(this).parents(".monitoringInfoRow").remove(); +}) \ No newline at end of file diff --git a/src/main/resources/templates/igActivities/fpiMgt/monitoring/resultEditModal.html b/src/main/resources/templates/igActivities/fpiMgt/monitoring/resultEditModal.html index bdbb9d17..f84c343b 100644 --- a/src/main/resources/templates/igActivities/fpiMgt/monitoring/resultEditModal.html +++ b/src/main/resources/templates/igActivities/fpiMgt/monitoring/resultEditModal.html @@ -16,36 +16,46 @@ -
- -
- -
- -
- -
-
-
-
- -
- -
- ~ -
- -
-
-
-
- -
- -
-
-
-
+ +
+
+
+
+ +
+ +
+ +
+ +
+
+
+ +
+
+ + +
+
+
+
+ +
+ +
+
+
모니터링
대상
@@ -91,7 +101,130 @@
-
+
+ +
+
+
+ +
+ +
+
+
+
+ +
+
+
구분
+
상세
+
금액
+
+
+
+
+ +
+
+ +
+
+ +
+
+
+
+ +
+ +
+ +
+
+
+
+
+
+
+
+
+ +
+
+
+
+
+ +
+
+ +
+ +
+ ~ +
+ +
+
+
+ +
+ +
+
+
+
모니터링
대상
+
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+
+
@@ -131,15 +264,62 @@
-
-
- -
- -
-
-
-
+
+ +
+
+
+ +
+ +
+
+
+
+ +
+
+ +
+
+
접촉일
+
작성일
+
제목
+
첨부파일
+
+
+
+
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+
+
+
+
+
+ +
+
+
+
+
@@ -156,7 +336,10 @@
+
+
+
@@ -176,6 +359,59 @@
+ +
+
+
+ +
+
+ +
+
+
+
+ +
+ +
+ +
+
+
+
+
+ +
+
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+
+