From e1ceaa3c3621869cd30c6e6f5a12fd3e3836fbb7 Mon Sep 17 00:00:00 2001 From: TaehunPark Date: Tue, 17 Jan 2023 18:04:23 +0900 Subject: [PATCH] =?UTF-8?q?feat=20:=20=EC=B2=A9=EB=B3=B4=EC=88=98=EC=A7=91?= =?UTF-8?q?=ED=99=9C=EB=8F=99=20>=20=EC=99=B8=EC=82=AC=EC=B2=A9=EB=B3=B4?= =?UTF-8?q?=EB=A7=9D=20=EA=B2=AC=EB=AC=B8=EA=B4=80=EB=A6=AC=20>=20?= =?UTF-8?q?=EC=9A=B4=EC=98=81=EC=8B=A4=EC=A0=81=20=EC=83=9D=EC=84=B1=20?= =?UTF-8?q?=EB=B0=8F=20=EC=A4=91=EA=B0=84=EC=A0=80=EC=9E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../IntelligenceNetworkController.java | 120 ++++++++++ .../mapper/IntelligenceNetworkMapper.java | 4 +- .../model/IntelligenceAnalyze.java | 88 ++++++++ .../model/IntelligenceAnalyzeToAffair.java | 34 +++ .../IntelligenceAnalyzeRepository.java | 11 + ...IntelligenceAnalyzeToAffairRepository.java | 12 + .../service/IntelligenceNetworkService.java | 29 +++ .../IntelligenceNetworkMapper.xml | 43 ++++ .../intelligenceAnalyze.js | 213 ++++++++++++++++++ .../intelligenceNetwork/operationPlan.js | 6 +- .../IntelligenceAnalyzeList.html | 180 +++++++++++++++ .../intelligenceAnalyzeEditModal.html | 123 ++++++++++ 12 files changed, 859 insertions(+), 4 deletions(-) create mode 100644 src/main/java/com/dbnt/faisp/main/fpiMgt/intelligenceNetwork/model/IntelligenceAnalyze.java create mode 100644 src/main/java/com/dbnt/faisp/main/fpiMgt/intelligenceNetwork/model/IntelligenceAnalyzeToAffair.java create mode 100644 src/main/java/com/dbnt/faisp/main/fpiMgt/intelligenceNetwork/repository/IntelligenceAnalyzeRepository.java create mode 100644 src/main/java/com/dbnt/faisp/main/fpiMgt/intelligenceNetwork/repository/IntelligenceAnalyzeToAffairRepository.java create mode 100644 src/main/resources/static/js/igActivities/fpiMgt/intelligenceNetwork/intelligenceAnalyze.js create mode 100644 src/main/resources/templates/igActivities/fpiMgt/intelligenceNetwork/IntelligenceAnalyzeList.html create mode 100644 src/main/resources/templates/igActivities/fpiMgt/intelligenceNetwork/intelligenceAnalyzeEditModal.html diff --git a/src/main/java/com/dbnt/faisp/main/fpiMgt/intelligenceNetwork/IntelligenceNetworkController.java b/src/main/java/com/dbnt/faisp/main/fpiMgt/intelligenceNetwork/IntelligenceNetworkController.java index adc9aad4..33086ee7 100644 --- a/src/main/java/com/dbnt/faisp/main/fpiMgt/intelligenceNetwork/IntelligenceNetworkController.java +++ b/src/main/java/com/dbnt/faisp/main/fpiMgt/intelligenceNetwork/IntelligenceNetworkController.java @@ -1,9 +1,11 @@ package com.dbnt.faisp.main.fpiMgt.intelligenceNetwork; import com.dbnt.faisp.main.authMgt.service.AuthMgtService; +import com.dbnt.faisp.main.fpiMgt.intelligenceNetwork.model.IntelligenceAnalyze; import com.dbnt.faisp.main.fpiMgt.intelligenceNetwork.model.OperationPlan; import com.dbnt.faisp.main.fpiMgt.intelligenceNetwork.model.OperationPlanApprv; import com.dbnt.faisp.main.fpiMgt.intelligenceNetwork.service.IntelligenceNetworkService; +import com.dbnt.faisp.main.translator.model.TranslatorCrr; import com.dbnt.faisp.main.userInfo.model.UserInfo; import lombok.RequiredArgsConstructor; import org.springframework.security.core.annotation.AuthenticationPrincipal; @@ -150,6 +152,124 @@ public class IntelligenceNetworkController { // 첩보수집활동 > 해양외 apprv.setSaveDt(LocalDateTime.now()); return intelligenceNetworkService.operationPlanStateChange(apprv); } + + @GetMapping("/intelligenceAnalyzeList/{type}") + public ModelAndView intelligenceAnalyzeList(@AuthenticationPrincipal UserInfo loginUser,@PathVariable("type") String type, OperationPlan op){ + ModelAndView mav = new ModelAndView("igActivities/fpiMgt/intelligenceNetwork/intelligenceAnalyzeList"); + + //메뉴권한 확인 + String accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/intelligenceNetwork/intelligenceAnalyzeList/all").get(0).getAccessAuth(); + if(type.equals("all")) { + switch (accessAuth){ + case "ACC001": // 조회 + case "ACC002": // 작성 // 자신이 작성한 문서만 열람가능 + op.setWrtUserSeq(loginUser.getUserSeq()); + break; + case "ACC003": // 관리 // 자신 외 하위 기관에서 작성한 문서 열람가능 + op.setDownOrganCdList(loginUser.getDownOrganCdList()); + mav.addObject("mgtOrganList", loginUser.getDownOrganCdList()); + break; + } + }else if(type.equals("stay") || type.equals("commit")) { + switch (accessAuth){ + case "ACC001": // 조회 + case "ACC002": // 작성 // 자신의 관서 내에서 작성한 문서만 열람가능 + op.setWrtOrgan(loginUser.getOgCd()); + break; + case "ACC003": // 관리 // 자신 외 하위 기관에서 작성한 문서 열람가능 + op.setDownOrganCdList(loginUser.getDownOrganCdList()); + mav.addObject("mgtOrganList", loginUser.getDownOrganCdList()); + break; + } + } + //결재권한 확인 + String apprvAuth = authMgtService.selectApprovalConfigList(loginUser.getUserSeq(), "/intelligenceNetwork/intelligenceAnalyzeList/all").get(0).getApprovalAuth(); + if(type.equals("stay")) { + if(apprvAuth==null) { + if(!accessAuth.equals("ACC003")){ + op.setWrtUserSeq(loginUser.getUserSeq()); + op.setUserType("normalStayList"); + }else{ + op.setUserType("managerStayList"); + } + }else{ + mav.addObject("userNm", loginUser.getUserNm()); + switch (apprvAuth){ + case "APC004": // 계장대행 + case "APC003": // 계장 // 결재대기 문서 조회 + case "APC002": // 부장대행 + case "APC001": // 부장 // 결재대기 문서 조회 + op.setOpState("DST002"); + break; + } + } + }else if(type.equals("commit")){ + if(apprvAuth==null) { + if(!accessAuth.equals("ACC003")){ + op.setWrtUserSeq(loginUser.getUserSeq()); + op.setUserType("normalCommitList"); + }else{ + op.setUserType("managerCommitList"); + } + }else{ + switch (apprvAuth) { + case "APC004": // 계장대행 + case "APC003": // 계장 // + case "APC002": // 부장대행 + case "APC001": // 부장 // + op.setUserType("sectionCommitList"); + break; + } + } + } + mav.addObject("accessAuth", accessAuth); + mav.addObject("apprvAuth", apprvAuth); + + op.setQueryInfo(); + mav.addObject("opList", intelligenceNetworkService.selectOperationPlanList(op)); + op.setContentCnt(intelligenceNetworkService.selectOperationPlanListCnt(op)); + op.setPaginationInfo(); + mav.addObject("type", type); + + mav.addObject("searchUrl", "/intelligenceNetwork/intelligenceAnalyzeList/"+type); + mav.addObject("searchParams", op); + return mav; + } + + @GetMapping("/intelligenceAnalyzeEditModal") + public ModelAndView intelligenceAnalyzeEditModal(@AuthenticationPrincipal UserInfo loginUser, IntelligenceAnalyze ia){ + ModelAndView mav = new ModelAndView("igActivities/fpiMgt/intelligenceNetwork/intelligenceAnalyzeEditModal"); + if(ia.getIaKey()!=null){ + + } + + mav.addObject("ia", ia); + return mav; + } + + @PostMapping("/getAffairCnt") + @ResponseBody + public IntelligenceAnalyze getAffairCnt(@RequestBody List affairKey){ + IntelligenceAnalyze ia = new IntelligenceAnalyze(); + ia.setAffairList(affairKey); + ia = intelligenceNetworkService.selectAffairCnt(ia); + ia.setAffairList(affairKey); + return ia; + } + + @PostMapping("/saveIntelligenceAnalyze") + public Integer saveIntelligenceAnalyze(@AuthenticationPrincipal UserInfo loginUser,IntelligenceAnalyze ia){ + + if(ia.getIaKey() == null) { + ia.setWrtOrgan(loginUser.getOgCd()); + ia.setWrtPart(loginUser.getOfcCd()); + ia.setWrtUserGrd(loginUser.getTitleCd()); + ia.setWrtUserSeq(loginUser.getUserSeq()); + ia.setWrtUserNm(loginUser.getUserNm()); + ia.setWrtDt(LocalDateTime.now()); + } + return intelligenceNetworkService.saveIntelligenceAnalyze(ia); + } } diff --git a/src/main/java/com/dbnt/faisp/main/fpiMgt/intelligenceNetwork/mapper/IntelligenceNetworkMapper.java b/src/main/java/com/dbnt/faisp/main/fpiMgt/intelligenceNetwork/mapper/IntelligenceNetworkMapper.java index 09b38085..0be3c08f 100644 --- a/src/main/java/com/dbnt/faisp/main/fpiMgt/intelligenceNetwork/mapper/IntelligenceNetworkMapper.java +++ b/src/main/java/com/dbnt/faisp/main/fpiMgt/intelligenceNetwork/mapper/IntelligenceNetworkMapper.java @@ -2,8 +2,8 @@ package com.dbnt.faisp.main.fpiMgt.intelligenceNetwork.mapper; import org.apache.ibatis.annotations.Mapper; +import com.dbnt.faisp.main.fpiMgt.intelligenceNetwork.model.IntelligenceAnalyze; import com.dbnt.faisp.main.fpiMgt.intelligenceNetwork.model.OperationPlan; -import com.dbnt.faisp.main.fpiMgt.monitoring.model.MonitoringDesignation; import java.util.List; @@ -14,6 +14,8 @@ public interface IntelligenceNetworkMapper { Integer selectOperationPlanListCnt(OperationPlan op); + IntelligenceAnalyze selectAffairCnt(IntelligenceAnalyze ia); + } diff --git a/src/main/java/com/dbnt/faisp/main/fpiMgt/intelligenceNetwork/model/IntelligenceAnalyze.java b/src/main/java/com/dbnt/faisp/main/fpiMgt/intelligenceNetwork/model/IntelligenceAnalyze.java new file mode 100644 index 00000000..43afe79a --- /dev/null +++ b/src/main/java/com/dbnt/faisp/main/fpiMgt/intelligenceNetwork/model/IntelligenceAnalyze.java @@ -0,0 +1,88 @@ +package com.dbnt.faisp.main.fpiMgt.intelligenceNetwork.model; + +import com.dbnt.faisp.config.BaseModel; + +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +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.time.LocalDate; +import java.time.LocalDateTime; +import java.util.List; + +@Getter +@Setter +@Entity +@NoArgsConstructor +@DynamicInsert +@DynamicUpdate +@Table(name = "intelligence_analyze") +public class IntelligenceAnalyze extends BaseModel { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ia_key") + private Integer iaKey; + @Column(name = "ia_sdate") + @DateTimeFormat(pattern = "yyyy-MM-dd") + private LocalDate iaSdate; + @Column(name = "ia_edate") + @DateTimeFormat(pattern = "yyyy-MM-dd") + private LocalDate iaEdate; + @Column(name = "fi_cnt") + private Integer fiCnt; + @Column(name = "fa_cnt") + private Integer faCnt; + @Column(name = "work_cnt") + private Integer workCnt; + @Column(name = "arrest_cnt") + private Integer arrestCnt; + @Column(name = "foreign_affairs") + private String foreignAffairs; + @Column(name = "work") + private String work; + @Column(name = "arrest_offenders") + private String arrestOffenders; + @Column(name = "analysis_evaluation") + private String analysisEvaluation; + @Column(name = "measures") + private String measures; + @Column(name = "ia_state") + private String iaState; + @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_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; + + + @Transient + private String userType; + @Transient + private List affairList; + @Transient + private Integer totalCnt; + @Transient + private Integer specialCnt; + @Transient + private Integer middleCnt; + @Transient + private Integer tongCnt; + @Transient + private Integer joCnt; + @Transient + private Integer muCnt; + +} diff --git a/src/main/java/com/dbnt/faisp/main/fpiMgt/intelligenceNetwork/model/IntelligenceAnalyzeToAffair.java b/src/main/java/com/dbnt/faisp/main/fpiMgt/intelligenceNetwork/model/IntelligenceAnalyzeToAffair.java new file mode 100644 index 00000000..79048ab6 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/main/fpiMgt/intelligenceNetwork/model/IntelligenceAnalyzeToAffair.java @@ -0,0 +1,34 @@ +package com.dbnt.faisp.main.fpiMgt.intelligenceNetwork.model; + +import lombok.*; +import org.hibernate.annotations.DynamicInsert; +import org.hibernate.annotations.DynamicUpdate; + +import javax.persistence.*; +import java.io.Serializable; + +@Getter +@Setter +@Entity +@NoArgsConstructor +@DynamicInsert +@DynamicUpdate +@Table(name = "intelligence_analyze_to_affair") +@IdClass(IntelligenceAnalyzeToAffair.IntelligenceAnalyzeToAffairId.class) +public class IntelligenceAnalyzeToAffair { + @Id + @Column(name = "ia_key") + private Integer iaKey; + @Id + @Column(name = "affair_key") + private Integer affairKey; + + @Embeddable + @Data + @NoArgsConstructor + @AllArgsConstructor + public static class IntelligenceAnalyzeToAffairId implements Serializable { + private Integer iaKey; + private Integer affairKey; + } +} diff --git a/src/main/java/com/dbnt/faisp/main/fpiMgt/intelligenceNetwork/repository/IntelligenceAnalyzeRepository.java b/src/main/java/com/dbnt/faisp/main/fpiMgt/intelligenceNetwork/repository/IntelligenceAnalyzeRepository.java new file mode 100644 index 00000000..5f8c34e0 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/main/fpiMgt/intelligenceNetwork/repository/IntelligenceAnalyzeRepository.java @@ -0,0 +1,11 @@ +package com.dbnt.faisp.main.fpiMgt.intelligenceNetwork.repository; + +import com.dbnt.faisp.main.fpiMgt.intelligenceNetwork.model.IntelligenceAnalyze; + +import org.springframework.data.jpa.repository.JpaRepository; + + + +public interface IntelligenceAnalyzeRepository extends JpaRepository { + +} diff --git a/src/main/java/com/dbnt/faisp/main/fpiMgt/intelligenceNetwork/repository/IntelligenceAnalyzeToAffairRepository.java b/src/main/java/com/dbnt/faisp/main/fpiMgt/intelligenceNetwork/repository/IntelligenceAnalyzeToAffairRepository.java new file mode 100644 index 00000000..d047ba9a --- /dev/null +++ b/src/main/java/com/dbnt/faisp/main/fpiMgt/intelligenceNetwork/repository/IntelligenceAnalyzeToAffairRepository.java @@ -0,0 +1,12 @@ +package com.dbnt.faisp.main.fpiMgt.intelligenceNetwork.repository; + +import com.dbnt.faisp.main.fpiMgt.intelligenceNetwork.model.IntelligenceAnalyzeToAffair; + +import org.springframework.data.jpa.repository.JpaRepository; + + + +public interface IntelligenceAnalyzeToAffairRepository extends JpaRepository { + + +} diff --git a/src/main/java/com/dbnt/faisp/main/fpiMgt/intelligenceNetwork/service/IntelligenceNetworkService.java b/src/main/java/com/dbnt/faisp/main/fpiMgt/intelligenceNetwork/service/IntelligenceNetworkService.java index a2b825d1..f4c8b4f6 100644 --- a/src/main/java/com/dbnt/faisp/main/fpiMgt/intelligenceNetwork/service/IntelligenceNetworkService.java +++ b/src/main/java/com/dbnt/faisp/main/fpiMgt/intelligenceNetwork/service/IntelligenceNetworkService.java @@ -4,10 +4,14 @@ package com.dbnt.faisp.main.fpiMgt.intelligenceNetwork.service; import com.dbnt.faisp.config.BaseService; import com.dbnt.faisp.config.FileInfo; import com.dbnt.faisp.main.fpiMgt.intelligenceNetwork.mapper.IntelligenceNetworkMapper; +import com.dbnt.faisp.main.fpiMgt.intelligenceNetwork.model.IntelligenceAnalyze; +import com.dbnt.faisp.main.fpiMgt.intelligenceNetwork.model.IntelligenceAnalyzeToAffair; import com.dbnt.faisp.main.fpiMgt.intelligenceNetwork.model.OperationPlan; import com.dbnt.faisp.main.fpiMgt.intelligenceNetwork.model.OperationPlanApprv; import com.dbnt.faisp.main.fpiMgt.intelligenceNetwork.model.OperationPlanFile; import com.dbnt.faisp.main.fpiMgt.intelligenceNetwork.model.OperationPlanFile.OperationPlanFileId; +import com.dbnt.faisp.main.fpiMgt.intelligenceNetwork.repository.IntelligenceAnalyzeRepository; +import com.dbnt.faisp.main.fpiMgt.intelligenceNetwork.repository.IntelligenceAnalyzeToAffairRepository; import com.dbnt.faisp.main.fpiMgt.intelligenceNetwork.repository.OperationPlanApprvRepository; import com.dbnt.faisp.main.fpiMgt.intelligenceNetwork.repository.OperationPlanFileRepository; import com.dbnt.faisp.main.fpiMgt.intelligenceNetwork.repository.OperationPlanRepository; @@ -28,6 +32,8 @@ public class IntelligenceNetworkService extends BaseService { private final OperationPlanApprvRepository operationPlanApprvRepository; private final OperationPlanFileRepository operationPlanFileRepository; private final OperationPlanRepository operationPlanRepository; + private final IntelligenceAnalyzeRepository intelligenceAnalyzeRepository; + private final IntelligenceAnalyzeToAffairRepository intelligenceAnalyzeToAffairRepository; private final IntelligenceNetworkMapper intelligenceNetworkMapper; @Transactional @@ -124,6 +130,29 @@ public class IntelligenceNetworkService extends BaseService { public OperationPlanFile selectOperationPlanFile(Integer parentKey, Integer fileSeq) { return operationPlanFileRepository.findById(new OperationPlanFileId(parentKey,fileSeq)).orElse(null); } + + public IntelligenceAnalyze selectAffairCnt(IntelligenceAnalyze ia) { + return intelligenceNetworkMapper.selectAffairCnt(ia); + } + + @Transactional + public Integer saveIntelligenceAnalyze(IntelligenceAnalyze ia) { + Integer iaKey = intelligenceAnalyzeRepository.save(ia).getIaKey(); + IntelligenceAnalyzeToAffair iata = new IntelligenceAnalyzeToAffair(); + iata.setIaKey(iaKey); + for(Integer affairKey : ia.getAffairList()) { + iata.setAffairKey(affairKey); + intelligenceAnalyzeToAffairRepository.save(iata); + } + if(ia.getIaState().equals("DST002")){ + //작성완료일 때 계장 결재 사용자에게 알림 발송. + userAlarmService.sendAlarmToApprvUser(iaKey, ia.getWrtOrgan(), "APC001", 34, "외사첩보망 견문관리 운영실적에 결재대기 문서가 있습니다."); + userAlarmService.sendAlarmToApprvUser(iaKey, ia.getWrtOrgan(), "APC002", 34, "외사첩보망 견문관리 운영실적에 결재대기 문서가 있습니다."); + userAlarmService.sendAlarmToApprvUser(iaKey, ia.getWrtOrgan(), "APC003", 34, "외사첩보망 견문관리 운영실적에 결재대기 문서가 있습니다."); + userAlarmService.sendAlarmToApprvUser(iaKey, ia.getWrtOrgan(), "APC004", 34, "외사첩보망 견문관리 운영실적에 결재대기 문서가 있습니다."); + } + return iaKey; + } diff --git a/src/main/resources/mybatisMapper/IntelligenceNetworkMapper.xml b/src/main/resources/mybatisMapper/IntelligenceNetworkMapper.xml index 51947a23..a7079373 100644 --- a/src/main/resources/mybatisMapper/IntelligenceNetworkMapper.xml +++ b/src/main/resources/mybatisMapper/IntelligenceNetworkMapper.xml @@ -80,4 +80,47 @@ from operation_plan op + + + \ No newline at end of file diff --git a/src/main/resources/static/js/igActivities/fpiMgt/intelligenceNetwork/intelligenceAnalyze.js b/src/main/resources/static/js/igActivities/fpiMgt/intelligenceNetwork/intelligenceAnalyze.js new file mode 100644 index 00000000..631d2764 --- /dev/null +++ b/src/main/resources/static/js/igActivities/fpiMgt/intelligenceNetwork/intelligenceAnalyze.js @@ -0,0 +1,213 @@ +$(function(){ + $("#dateSelectorDiv").datepicker({ + format: "yyyy-mm-dd", + language: "ko", + autoclose: true + }); +}) + +$(document).on('click', '#allTab', function (){ + location.href = "/intelligenceNetwork/operationPlanList/all"; +}) +$(document).on('click', '#stayTab', function (){ + location.href = "/intelligenceNetwork/operationPlanList/stay"; +}) +$(document).on('click', '#commitTab', function (){ + location.href = "/intelligenceNetwork/operationPlanList/commit"; +}) + +$(document).on('click', '#addBtn', function (){ + getIntelligenceAnalyzeEditModal(null); +}) + +function getIntelligenceAnalyzeEditModal(opKey){ + $.ajax({ + url: '/intelligenceNetwork/intelligenceAnalyzeEditModal', + data: {opKey: opKey}, + type: 'GET', + dataType:"html", + success: function(html){ + $("#intelligenceAnalyzeEditModalContent").empty().append(html) + $("#iaDateSelectorDiv").datepicker({ + format: "yyyy-mm-dd", + language: "ko", + autoclose: true + }); + setUploadDiv(); + $("#intelligenceAnalyzeEditModal").modal('show'); + }, + error:function(){ + + } + }); +} + +$(document).on('click', '#affairModalBtn', function (){ + const workStartDt = $("#iaSdate").val() + const workEndDt = $("#iaEdate").val() + if(!workStartDt||!workEndDt){ + alert("실적기간을 입력해주세요."); + }else{ + $.ajax({ + url: '/affairResult/affairListModal', + data: { + startDate: workStartDt, + endDate: workEndDt, + affairCategory:"CAT216", + affairStatus:"DST006" + }, + type: 'GET', + dataType:"html", + success: function(html){ + $("#affairListModalContent").empty().append(html) + $("#affairListModal").modal('show'); + }, + error:function(e){ + ajaxErrorAction(e); + } + }); + } +}) +$(document).on('keyup', '.cntInput', function (){ + const cnt = Number($(this).val()); + $("#totalCnt2").val(Number($("#totalCnt2").val())+cnt); + +}) + +$(document).on('click', '#getAffairBtn', function (){ + const affairList=[]; + $.each($(".rowChkBox:checked"), function (idx, chkBox){ + const affairTr = $(chkBox).parents(".affairTr"); + affairList.push(affairTr.find(".rowChkBox").val()); + }) + $.ajax({ + type : 'POST', + data : JSON.stringify(affairList), + url : "/intelligenceNetwork/getAffairCnt", + contentType: 'application/json', + beforeSend: function (xhr){ + xhr.setRequestHeader($("[name='_csrf_header']").val(), $("[name='_csrf']").val()); + }, + success : function(data) { + $("#totalCnt").val(data.totalCnt); + $("#specialCnt").val(data.specialCnt); + $("#middleCnt").val(data.middleCnt); + $("#tongCnt").val(data.tongCnt); + $("#joCnt").val(data.joCnt); + $("#muCnt").val(data.muCnt); + $("#affairList").val(data.affairList); + //$.each(data.affairList, function(affair, idx){ + //$("#ddd").val($("#ddd").val()+","+affair); + //}) + + contentFade("out"); + //trCarrerList.length = 0; + }, + error : function(xhr, status) { + contentFade("out"); + } + }) + $("#affairListModal").modal("hide"); +}) + +$(document).on('click', '#editBtn', function (){ + $("#operationPlanViewModal").modal('hide'); + getoOerationPlanEditModal($(this).attr("data-opkey")); +}) + +$(document).on('click', '#saveBtn', function (){ + /* + if(!$("#opName").val()){ + alert("성명을 입력해주세요."); + $('#opName').focus(); + return false; + } + */ + if(confirm("저장하시겠습니까?")){ + saveIntelligenceAnalyze('DST002'); + } +}) + +$(document).on('click', '#saveTempBtn', function (){ + if(confirm("임시저장 하시겠습니까?")){ + saveIntelligenceAnalyze('DST001'); + } +}) + +function saveIntelligenceAnalyze(iaState){ + contentFade("in"); + const formData = new FormData($("#intelligenceAnalyzeEditForm")[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('iaState', iaState); + $.ajax({ + type : 'POST', + data : formData, + url : "/intelligenceNetwork/saveIntelligenceAnalyze", + processData: false, + contentType: false, + success : function(result) { + alert("저장되었습니다."); + contentFade("out"); + location.reload(); + }, + error : function(xhr, status) { + alert("저장에 실패하였습니다.") + contentFade("out"); + } + }) +} + +$(document).on('click', '.operationPlanTr', function (){ + getOperationPlanViewModal(Number($(this).find(".opKey").val())); +}) + +function getOperationPlanViewModal(opKey){ + $.ajax({ + url: '/intelligenceNetwork/operationPlanViewModal', + data: {opKey: opKey}, + type: 'GET', + dataType:"html", + success: function(html){ + $("#operationPlanViewModalBody").empty().append(html) + $("#operationPlanViewModal").modal('show'); + }, + error:function(){ + + } + }); +} + +$(document).on('click', '.apprvBtn', function (){ + $("#viewModalApprvValue").val($(this).attr("data-planstate")); + const approval = $(this).val(); + if(confirm(approval+"하시겠습니까?")){ + const formData = new FormData($("#apprvForm")[0]); + contentFade("in") + $.ajax({ + type : 'POST', + data : formData, + url : "/intelligenceNetwork/operationPlanStateChange", + processData: false, + contentType: false, + beforeSend: function (xhr){ + xhr.setRequestHeader($("[name='_csrf_header']").val(), $("[name='_csrf']").val()); + }, + success : function(result) { + alert(approval+"되었습니다"); + getOperationPlanViewModal(result); + contentFade("out"); + }, + error : function(xhr, status) { + alert(approval+"처리를 실패하였습니다."); + contentFade("out"); + } + }) + } +}) + diff --git a/src/main/resources/static/js/igActivities/fpiMgt/intelligenceNetwork/operationPlan.js b/src/main/resources/static/js/igActivities/fpiMgt/intelligenceNetwork/operationPlan.js index 26f8f4e4..6f0e0bc7 100644 --- a/src/main/resources/static/js/igActivities/fpiMgt/intelligenceNetwork/operationPlan.js +++ b/src/main/resources/static/js/igActivities/fpiMgt/intelligenceNetwork/operationPlan.js @@ -17,10 +17,10 @@ $(document).on('click', '#commitTab', function (){ }) $(document).on('click', '#addBtn', function (){ - getoOerationPlanEditModal(null); + getOerationPlanEditModal(null); }) -function getoOerationPlanEditModal(opKey){ +function getOerationPlanEditModal(opKey){ $.ajax({ url: '/intelligenceNetwork/operationPlanEditModal', data: {opKey: opKey}, @@ -44,7 +44,7 @@ function getoOerationPlanEditModal(opKey){ $(document).on('click', '#editBtn', function (){ $("#operationPlanViewModal").modal('hide'); - getoOerationPlanEditModal($(this).attr("data-opkey")); + getOerationPlanEditModal($(this).attr("data-opkey")); }) $(document).on('click', '#saveBtn', function (){ diff --git a/src/main/resources/templates/igActivities/fpiMgt/intelligenceNetwork/IntelligenceAnalyzeList.html b/src/main/resources/templates/igActivities/fpiMgt/intelligenceNetwork/IntelligenceAnalyzeList.html new file mode 100644 index 00000000..90beb4ba --- /dev/null +++ b/src/main/resources/templates/igActivities/fpiMgt/intelligenceNetwork/IntelligenceAnalyzeList.html @@ -0,0 +1,180 @@ + + + + + +
+
+ + +
+

운영 실적 분석 / 평가서

+

첩보수집활동 > 외사첩보망 견문관리 > 운영 실적 분석 / 평가

+
+
+
+
+ +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
문서번호실적기간첩보수집실적허위
오보
활용실적등록일관리관
결제여부
특보중보통보조사무가치외사
활동
공작검거
(건/명)
+
+
+
+
+
+ +
+
+ +
+
+
+
+
+
+
+ + + + + + +
+ \ No newline at end of file diff --git a/src/main/resources/templates/igActivities/fpiMgt/intelligenceNetwork/intelligenceAnalyzeEditModal.html b/src/main/resources/templates/igActivities/fpiMgt/intelligenceNetwork/intelligenceAnalyzeEditModal.html new file mode 100644 index 00000000..ab6aa1a5 --- /dev/null +++ b/src/main/resources/templates/igActivities/fpiMgt/intelligenceNetwork/intelligenceAnalyzeEditModal.html @@ -0,0 +1,123 @@ + + + + + \ No newline at end of file