From 2d79466c8c0c356edaa8f5170bc91e98e6cb8555 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B0=95=EC=84=9D=20=EC=B5=9C?= Date: Mon, 6 Mar 2023 19:15:03 +0900 Subject: [PATCH] =?UTF-8?q?=EC=99=B8=EC=82=AC=ED=99=9C=EB=8F=99=20?= =?UTF-8?q?=EC=9E=91=EC=97=85=EC=A4=91.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dbnt/faisp/config/ModalController.java | 2 - .../activityCase/ActivityCaseController.java | 43 +++-- .../mapper/ActivityCaseMapper.java | 8 +- .../activityCase/model/ActivityCaseApprv.java | 2 + .../activityCase/model/ActivityCaseBoard.java | 35 ++++ .../activityCase/model/ActivityCaseInfo.java | 4 + .../ActivityCaseApprvRepository.java | 2 + .../ActivityCaseFileRepository.java | 1 + .../ActivityCaseSuspectRepository.java | 1 + .../service/ActivityCaseService.java | 67 ++++++-- .../mybatisMapper/ActivityCaseMapper.xml | 110 ++++++++----- src/main/resources/static/js/common.js | 1 - .../js/counterIntelligence/activityCase.js | 151 +++++++++++++++--- .../templates/common/modal/userModal.html | 22 +-- .../activityCase/activityCase1EditModal.html | 33 +++- .../activityCase/activityCase1ViewModal.html | 88 ++++------ .../activityCase/activityCaseBoard.html | 72 ++++----- .../activityCaseSummaryModal.html | 49 ++++++ .../activityCase/apprvDiv.html | 42 +++++ .../activityCase/suspectDiv.html | 11 +- 20 files changed, 530 insertions(+), 214 deletions(-) create mode 100644 src/main/java/com/dbnt/faisp/main/counterIntelligence/activityCase/model/ActivityCaseBoard.java create mode 100644 src/main/resources/templates/counterIntelligence/activityCase/activityCaseSummaryModal.html create mode 100644 src/main/resources/templates/counterIntelligence/activityCase/apprvDiv.html diff --git a/src/main/java/com/dbnt/faisp/config/ModalController.java b/src/main/java/com/dbnt/faisp/config/ModalController.java index 9e6928eb..756521b3 100644 --- a/src/main/java/com/dbnt/faisp/config/ModalController.java +++ b/src/main/java/com/dbnt/faisp/config/ModalController.java @@ -56,8 +56,6 @@ public class ModalController { userInfo.setUserStatus("USC003"); } mav.addObject("pageName", pageName); - mav.addObject("OgList", codeMgtService.selectCodeMgtList("OG")); - mav.addObject("OfcList", codeMgtService.selectCodeMgtList("OFC")); mav.addObject("userInfoList", userInfoService.selectUserInfoList(userInfo)); userInfo.setContentCnt(userInfoService.selectUserInfoListCnt(userInfo)); userInfo.setPaginationInfo(); diff --git a/src/main/java/com/dbnt/faisp/main/counterIntelligence/activityCase/ActivityCaseController.java b/src/main/java/com/dbnt/faisp/main/counterIntelligence/activityCase/ActivityCaseController.java index 354206a0..7c347399 100644 --- a/src/main/java/com/dbnt/faisp/main/counterIntelligence/activityCase/ActivityCaseController.java +++ b/src/main/java/com/dbnt/faisp/main/counterIntelligence/activityCase/ActivityCaseController.java @@ -3,6 +3,8 @@ package com.dbnt.faisp.main.counterIntelligence.activityCase; import com.dbnt.faisp.main.authMgt.service.AuthMgtService; import com.dbnt.faisp.main.codeMgt.service.CodeMgtService; import com.dbnt.faisp.main.counterIntelligence.activityCase.model.ActivityCase; +import com.dbnt.faisp.main.counterIntelligence.activityCase.model.ActivityCaseApprv; +import com.dbnt.faisp.main.counterIntelligence.activityCase.model.ActivityCaseBoard; import com.dbnt.faisp.main.counterIntelligence.activityCase.model.ActivityCaseInfo; import com.dbnt.faisp.main.counterIntelligence.activityCase.service.ActivityCaseService; import com.dbnt.faisp.main.counterIntelligence.model.CounterIntelligenceWork; @@ -27,7 +29,7 @@ public class ActivityCaseController { private final CodeMgtService codeMgtService; @GetMapping("/activityCaseList") - public ModelAndView activityCaseListPage(@AuthenticationPrincipal UserInfo loginUser, ActivityCase activityCase){ + public ModelAndView activityCaseListPage(@AuthenticationPrincipal UserInfo loginUser, ActivityCaseBoard activityCase){ ModelAndView mav = new ModelAndView("counterIntelligence/activityCase/activityCaseBoard"); mav.addObject("searchUrl", "/counterIntelligence/activityCaseList"); String accessAuth = authMgtService.selectAccessConfigList @@ -64,7 +66,6 @@ public class ActivityCaseController { activityCase.setWrtUserSeq(loginUser.getUserSeq()); activityCase.setWrtUserGrd(loginUser.getTitleCd()); activityCase.setWrtUserNm(loginUser.getUserNm()); - activityCaseInfo.setWrtDt(LocalDateTime.now()); }else{ activityCase = activityCaseService.selectActivityCase(activityCase.getReceiptKey()); activityCaseInfo = activityCaseService.selectActivityCaseInfo(activityCaseInfo.getCaseKey()); @@ -80,30 +81,48 @@ public class ActivityCaseController { @GetMapping("/getSuspectDiv") public ModelAndView suspectDiv(){ ModelAndView mav = new ModelAndView("counterIntelligence/activityCase/suspectDiv"); - mav.addObject("acsList", codeMgtService.selectCodeMgtList("ACS")); return mav; } + @PostMapping("/getApprvDiv") @ResponseBody - @PostMapping("/getOfficerDiv") - public ModelAndView officerDiv(@RequestBody List userList){ - ModelAndView mav = new ModelAndView("counterIntelligence/activityCase/officerDiv"); - mav.addObject("officerList", userList); - mav.addObject("acoList", codeMgtService.selectCodeMgtList("ACO")); + public ModelAndView apprvDiv(@RequestBody List apprvList){ + ModelAndView mav = new ModelAndView("counterIntelligence/activityCase/apprvDiv"); + mav.addObject("userList", apprvList); + return mav; + } + + @GetMapping("/activityCaseSummaryModal") + public ModelAndView activityCaseSummaryModal(@AuthenticationPrincipal UserInfo loginUser, ActivityCaseBoard activityCase){ + ModelAndView mav = new ModelAndView("counterIntelligence/activityCase/activityCaseSummaryModal"); + mav.addObject("activityCaseList", activityCaseService.selectActivityCaseList(activityCase)); return mav; } @GetMapping("/activityCaseViewModal") - public ModelAndView activityCaseViewModal(@AuthenticationPrincipal UserInfo loginUser, ActivityCase activityCase){ - ModelAndView mav = new ModelAndView("counterIntelligence/activityCase/activityCaseViewModal"); - mav.addObject("lineSeparator", '\n'); + public ModelAndView activityCaseViewModal(@AuthenticationPrincipal UserInfo loginUser, ActivityCaseBoard activityCase){ + ModelAndView mav = null; + ActivityCaseInfo activityCaseInfo = activityCaseService.selectActivityCaseInfo(activityCase.getCaseKey()); + switch (activityCaseInfo.getCaseType()){ + case "ACT001": + mav = new ModelAndView("counterIntelligence/activityCase/activityCase1ViewModal"); + break; + case "ACT002": + mav = new ModelAndView("counterIntelligence/activityCase/activityCase2ViewModal"); + break; + case "ACT003": + mav = new ModelAndView("counterIntelligence/activityCase/activityCase3ViewModal"); + break; + } mav.addObject("viewUserSeq", loginUser.getUserSeq()); String accessAuth = authMgtService.selectAccessConfigList (loginUser.getUserSeq(), "/counterIntelligence/activityCaseList").get(0).getAccessAuth(); mav.addObject("accessAuth", accessAuth); - mav.addObject("activityCase", activityCaseService.selectActivityCase(activityCase.getReceiptKey())); + mav.addObject("activityCaseInfo", activityCaseInfo); + mav.addObject("activityCase", activityCaseService.selectActivityCase(activityCaseInfo.getReceiptKey())); return mav; } + @PostMapping("/saveActivityCase") public Integer saveActivityCase(ActivityCase activityCase, ActivityCaseInfo activityCaseInfo, diff --git a/src/main/java/com/dbnt/faisp/main/counterIntelligence/activityCase/mapper/ActivityCaseMapper.java b/src/main/java/com/dbnt/faisp/main/counterIntelligence/activityCase/mapper/ActivityCaseMapper.java index 6c8fb041..73ca35af 100644 --- a/src/main/java/com/dbnt/faisp/main/counterIntelligence/activityCase/mapper/ActivityCaseMapper.java +++ b/src/main/java/com/dbnt/faisp/main/counterIntelligence/activityCase/mapper/ActivityCaseMapper.java @@ -1,19 +1,23 @@ package com.dbnt.faisp.main.counterIntelligence.activityCase.mapper; import com.dbnt.faisp.main.counterIntelligence.activityCase.model.ActivityCase; +import com.dbnt.faisp.main.counterIntelligence.activityCase.model.ActivityCaseBoard; import com.dbnt.faisp.main.counterIntelligence.model.CiWorkStatistics; import com.dbnt.faisp.main.counterIntelligence.model.CounterIntelligenceActivity; import com.dbnt.faisp.main.counterIntelligence.model.CounterIntelligenceWork; import org.apache.ibatis.annotations.Mapper; import java.util.List; +import java.util.Map; @Mapper public interface ActivityCaseMapper { - List selectActivityCaseList(ActivityCase activityCase); + List selectActivityCaseList(ActivityCaseBoard activityCase); - Integer selectActivityCaseCnt(ActivityCase activityCase); + Integer selectActivityCaseCnt(ActivityCaseBoard activityCase); + Integer selectReceiptNum(int year); + Integer selectCaseNum(Map map); } diff --git a/src/main/java/com/dbnt/faisp/main/counterIntelligence/activityCase/model/ActivityCaseApprv.java b/src/main/java/com/dbnt/faisp/main/counterIntelligence/activityCase/model/ActivityCaseApprv.java index 82887a3f..d0f6f45f 100644 --- a/src/main/java/com/dbnt/faisp/main/counterIntelligence/activityCase/model/ActivityCaseApprv.java +++ b/src/main/java/com/dbnt/faisp/main/counterIntelligence/activityCase/model/ActivityCaseApprv.java @@ -27,6 +27,8 @@ public class ActivityCaseApprv { private Integer userSeq; @Column(name = "apprv_path") private String apprvPath; + @Column(name = "apprv_type") + private String apprvType; @Column(name = "og_cd") private String ogCd; @Column(name = "ofc_cd") diff --git a/src/main/java/com/dbnt/faisp/main/counterIntelligence/activityCase/model/ActivityCaseBoard.java b/src/main/java/com/dbnt/faisp/main/counterIntelligence/activityCase/model/ActivityCaseBoard.java new file mode 100644 index 00000000..76b24702 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/main/counterIntelligence/activityCase/model/ActivityCaseBoard.java @@ -0,0 +1,35 @@ +package com.dbnt.faisp.main.counterIntelligence.activityCase.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 javax.persistence.*; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.util.List; + +@Getter +@Setter +@NoArgsConstructor +public class ActivityCaseBoard extends BaseModel { + private Integer receiptKey; + private String receiptNum; + private String wrtOrgan; + private String wrtPart; + private Integer wrtUserSeq; + private String wrtUserGrd; + private String wrtUserNm; + private Integer caseKey; + private String caseNum; + private LocalDate reportDate; + private String caseType; + private String title; + private LocalDateTime wrtDt; + private Integer apprvCnt; + private Integer allCnt; + private Integer fileCnt; +} diff --git a/src/main/java/com/dbnt/faisp/main/counterIntelligence/activityCase/model/ActivityCaseInfo.java b/src/main/java/com/dbnt/faisp/main/counterIntelligence/activityCase/model/ActivityCaseInfo.java index 8cd70960..f4418143 100644 --- a/src/main/java/com/dbnt/faisp/main/counterIntelligence/activityCase/model/ActivityCaseInfo.java +++ b/src/main/java/com/dbnt/faisp/main/counterIntelligence/activityCase/model/ActivityCaseInfo.java @@ -10,6 +10,7 @@ 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; @@ -29,6 +30,9 @@ public class ActivityCaseInfo extends BaseModel { private Integer receiptKey; @Column(name = "case_num") private String caseNum; + @Column(name = "report_date") + @DateTimeFormat(pattern = "yyyy-MM-dd") + private LocalDate reportDate; @Column(name = "case_type") private String caseType; @Column(name = "title") diff --git a/src/main/java/com/dbnt/faisp/main/counterIntelligence/activityCase/repository/ActivityCaseApprvRepository.java b/src/main/java/com/dbnt/faisp/main/counterIntelligence/activityCase/repository/ActivityCaseApprvRepository.java index c340a049..9c607beb 100644 --- a/src/main/java/com/dbnt/faisp/main/counterIntelligence/activityCase/repository/ActivityCaseApprvRepository.java +++ b/src/main/java/com/dbnt/faisp/main/counterIntelligence/activityCase/repository/ActivityCaseApprvRepository.java @@ -10,4 +10,6 @@ import java.util.Optional; public interface ActivityCaseApprvRepository extends JpaRepository { + List findByCaseKey(Integer caseKey); + } diff --git a/src/main/java/com/dbnt/faisp/main/counterIntelligence/activityCase/repository/ActivityCaseFileRepository.java b/src/main/java/com/dbnt/faisp/main/counterIntelligence/activityCase/repository/ActivityCaseFileRepository.java index 50be12af..6ebecef1 100644 --- a/src/main/java/com/dbnt/faisp/main/counterIntelligence/activityCase/repository/ActivityCaseFileRepository.java +++ b/src/main/java/com/dbnt/faisp/main/counterIntelligence/activityCase/repository/ActivityCaseFileRepository.java @@ -12,4 +12,5 @@ public interface ActivityCaseFileRepository extends JpaRepository findByCaseKey(Integer caseKey); Optional findTopByCaseKeyOrderByFileSeqDesc(Integer caseKey); + List findByCaseKeyOrderByFileSeqAsc(Integer caseKey); } diff --git a/src/main/java/com/dbnt/faisp/main/counterIntelligence/activityCase/repository/ActivityCaseSuspectRepository.java b/src/main/java/com/dbnt/faisp/main/counterIntelligence/activityCase/repository/ActivityCaseSuspectRepository.java index ca5275b4..c80cc574 100644 --- a/src/main/java/com/dbnt/faisp/main/counterIntelligence/activityCase/repository/ActivityCaseSuspectRepository.java +++ b/src/main/java/com/dbnt/faisp/main/counterIntelligence/activityCase/repository/ActivityCaseSuspectRepository.java @@ -9,4 +9,5 @@ import java.util.Optional; public interface ActivityCaseSuspectRepository extends JpaRepository { + List findByReceiptKeyOrderBySuspectSeqDesc(Integer receiptKey); } diff --git a/src/main/java/com/dbnt/faisp/main/counterIntelligence/activityCase/service/ActivityCaseService.java b/src/main/java/com/dbnt/faisp/main/counterIntelligence/activityCase/service/ActivityCaseService.java index d4c25479..95759272 100644 --- a/src/main/java/com/dbnt/faisp/main/counterIntelligence/activityCase/service/ActivityCaseService.java +++ b/src/main/java/com/dbnt/faisp/main/counterIntelligence/activityCase/service/ActivityCaseService.java @@ -5,13 +5,18 @@ import com.dbnt.faisp.config.FileInfo; import com.dbnt.faisp.main.counterIntelligence.activityCase.mapper.ActivityCaseMapper; import com.dbnt.faisp.main.counterIntelligence.activityCase.model.*; import com.dbnt.faisp.main.counterIntelligence.activityCase.repository.*; +import com.dbnt.faisp.util.Utils; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.multipart.MultipartFile; import java.io.File; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.util.HashMap; import java.util.List; +import java.util.Map; import java.util.UUID; @Service @@ -24,36 +29,56 @@ public class ActivityCaseService extends BaseService { private final ActivityCaseApprvRepository acaRepository; private final ActivityCaseMapper acMapper; - public List selectActivityCaseList(ActivityCase activityCase){ + public List selectActivityCaseList(ActivityCaseBoard activityCase){ return acMapper.selectActivityCaseList(activityCase); } - public Integer selectActivityCaseCnt(ActivityCase activityCase){ + public Integer selectActivityCaseCnt(ActivityCaseBoard activityCase){ return acMapper.selectActivityCaseCnt(activityCase); } public ActivityCase selectActivityCase(Integer receiptKey) { ActivityCase activityCase = acRepository.findById(receiptKey).orElse(null); - + activityCase.setSuspectList(acsRepository.findByReceiptKeyOrderBySuspectSeqDesc(receiptKey)); return activityCase; } public ActivityCaseInfo selectActivityCaseInfo(Integer caseKey) { ActivityCaseInfo activityCaseInfo = aciRepository.findById(caseKey).orElse(null); + activityCaseInfo.setApprvList(acaRepository.findByCaseKey(caseKey)); + activityCaseInfo.setFileList(acfRepository.findByCaseKeyOrderByFileSeqAsc(caseKey)); return activityCaseInfo; } @Transactional public Integer saveActivityCase(ActivityCase activityCase, ActivityCaseInfo activityCaseInfo, List deleteFileSeq) { - Integer receiptKey = acRepository.save(activityCase).getReceiptKey(); - - return receiptKey; - } - - private void saveActivityCaseSuspect(Integer caseKey, List suspectList) { - if(suspectList==null){ - + Integer receiptKey = null; + if(Utils.isEmpty(activityCase.getReceiptKey())){ + if(Utils.isEmpty(activityCase.getReceiptNum())){ + activityCase.setReceiptNum(makeReceiptNum(LocalDate.now().getYear())); + } + receiptKey = acRepository.save(activityCase).getReceiptKey(); }else{ - + receiptKey = activityCase.getReceiptKey(); } + int suspectSeq = 1; + for(ActivityCaseSuspect suspect: activityCase.getSuspectList()){ + suspect.setSuspectSeq(suspectSeq++); + suspect.setReceiptKey(receiptKey); + } + acsRepository.saveAll(activityCase.getSuspectList()); + + if(Utils.isEmpty(activityCaseInfo.getCaseNum())){ + activityCaseInfo.setCaseNum(makeCaseNum(LocalDate.now().getYear(), activityCase.getReceiptNum())); + } + activityCaseInfo.setReceiptKey(receiptKey); + activityCaseInfo.setWrtDt(LocalDateTime.now()); + Integer caseKey = aciRepository.save(activityCaseInfo).getCaseKey(); + deleteActivityCaseFile(caseKey, deleteFileSeq); + saveUploadFiles(caseKey, activityCaseInfo.getMultipartFileList()); + for(ActivityCaseApprv apprv: activityCaseInfo.getApprvList()){ + apprv.setCaseKey(caseKey); + } + acaRepository.saveAll(activityCaseInfo.getApprvList()); + return caseKey; } private void deleteActivityCaseFile(Integer caseKey, List deleteFileSeq) { @@ -98,4 +123,22 @@ public class ActivityCaseService extends BaseService { return receiptKey; } + @Transactional + public Integer deleteActivityCaseInfo(Integer caseKey) { + ActivityCaseInfo activityCaseInfo = aciRepository.findById(caseKey).orElse(null); + + return caseKey; + } + + private String makeReceiptNum(int year){ + String receiptNum = "00"+acMapper.selectReceiptNum(year); + return year+"-"+receiptNum.substring(receiptNum.length()-3); + } + private String makeCaseNum(int year, String receiptNum){ + Map params = new HashMap<>(); + params.put("receiptNum", receiptNum); + params.put("year", year); + String caseNum = "00"+acMapper.selectCaseNum(params); + return year+"-"+caseNum.substring(caseNum.length()-3); + } } diff --git a/src/main/resources/mybatisMapper/ActivityCaseMapper.xml b/src/main/resources/mybatisMapper/ActivityCaseMapper.xml index 38e3d80c..70e8fce2 100644 --- a/src/main/resources/mybatisMapper/ActivityCaseMapper.xml +++ b/src/main/resources/mybatisMapper/ActivityCaseMapper.xml @@ -6,67 +6,103 @@ + + and a.receipt_key = #{receiptKey} + + + and a.receipt_num like '%'||#{receiptNum}||'%' + and a.wrt_user_nm like '%'||#{wrtUserNm}||'%' and a.wrt_organ = #{wrtOrgan} - + - and a.receipt_dt >= #{startDate}::date + and b.report_date >= #{startDate}::date - and a.receipt_dt <= #{endDate}::date+1 - - - - - and a.result_dt >= #{startDate}::date - - - and a.result_dt <= #{endDate}::date+1 + and b.report_date <= #{endDate}::date+1 - and a.wrt_dt >= #{startDate}::date + and b.wrt_dt >= #{startDate}::date - and a.wrt_dt <= #{endDate}::date+1 + and b.wrt_dt <= #{endDate}::date+1 - + select a.receipt_key, + a.receipt_num , + a.wrt_organ , + a.wrt_part , + a.wrt_user_seq , + a.wrt_user_grd , + a.wrt_user_nm , + b.case_key , + b.case_num , + b.report_date , + b.case_type , + b.title, + b.wrt_dt, + c.apprvCnt, + c.allCnt, + d.fileCnt + from activity_case a + inner join activity_case_info b + on a.receipt_key = b.receipt_key + inner join ( + select case_key, + count(apprv_yn = 'Y' or apprv_yn = 'N') as apprvCnt, + count(*) as allCnt + from activity_case_apprv + group by case_key + ) c on b.case_key = c.case_key + inner join ( + select case_key, count(*) as fileCnt + from activity_case_file + group by case_key + ) d on b.case_key = d.case_key - ORDER BY a.ciw_key DESC + ORDER BY b.wrt_dt DESC LIMIT #{rowCnt} OFFSET #{firstIndex} - select count(*) - from counter_intelligence_work a - left outer join (select ciw_key, count(*) as fileCnt from ciw_file group by ciw_key) b - on a.ciw_key = b.ciw_key + from activity_case a + inner join activity_case_info b + on a.receipt_key = b.receipt_key + inner join ( + select case_key, + count(apprv_yn = 'Y' or apprv_yn = 'N') as apprvCnt, + count(*) as allCnt + from activity_case_apprv + group by case_key + ) c on b.case_key = c.case_key + inner join ( + select case_key, count(*) as fileCnt + from activity_case_file + group by case_key + ) d on b.case_key = d.case_key + + \ No newline at end of file diff --git a/src/main/resources/static/js/common.js b/src/main/resources/static/js/common.js index 927b6760..9115eb5a 100644 --- a/src/main/resources/static/js/common.js +++ b/src/main/resources/static/js/common.js @@ -349,7 +349,6 @@ function ajaxErrorAction(e){ }else if(e.responseText.includes("접근이 거부되었습니다.")){ alert("접근이 거부되었습니다.") location.href="/"; - } } } \ No newline at end of file diff --git a/src/main/resources/static/js/counterIntelligence/activityCase.js b/src/main/resources/static/js/counterIntelligence/activityCase.js index 643fd2aa..1cb227e5 100644 --- a/src/main/resources/static/js/counterIntelligence/activityCase.js +++ b/src/main/resources/static/js/counterIntelligence/activityCase.js @@ -8,25 +8,46 @@ $(document).on('click', '#suspectAddBtn', function (){ getSuspectDiv() }) +$(document).on('click', '#apprvAddBtn', function (){ + searchModalSubmit(1); + $("#userModal").modal('show'); +}) +$(document).on('click', '#getUserBtn', function (){ + const selectedUser = $(".userInfoCheckBox:checked").parents(".userInfoTr") + const userList = []; + $.each(selectedUser, function (idx, tr){ + const row = $(tr); + userList.push({ + userSeq: row.find('.userSeq').val(), + ogCd: row.find('.ogCd').val(), + ofcCd: row.find('.ofcCd').val(), + titleCd: row.find('.titleCd').val(), + userNm: row.find('.userNm').val() + }) + }) + getApprvDiv(userList); +}) + $(document).on('click', '.rowDeleteBtn', function (){ $(this).parents(".suspectDiv").remove(); + $(this).parents(".apprvDiv").remove(); }) $(document).on('click', '.saveBtn', function(){ saveActivityCase($(this).attr("data-status")); }) -$(document).on('click', '.activityCaseTr', function (){ - getActivityCaseViewModal($(this).find(".ciwKey").val()); -}) - $(document).on('click', '#editActivityCaseBtn', function (){ $("#activityCaseViewModal").modal('hide'); getActivityCaseEditModal($(this).attr("data-casekey")); }) -$(document).on('click', '#deleteActivityCaseBtn', function (){ - deleteActivityCase($(this).attr("data-casekey")); +$(document).on('click', '.activityCaseTr', function (){ + getActivityCaseSummaryModal($(this).find(".receiptKey").val()); +}) + +$(document).on('click', '.summaryTr', function (){ + getActivityCaseViewModal($(this).find(".caseKey").val()); }) function getActivityCaseEditModal(caseKey, caseType){ @@ -58,6 +79,47 @@ function getSuspectDiv(){ dataType:"html", success: function(html){ $("#suspectHome").append(html) + $(".suspectBirthDate").datepicker({ + format: "yyyy-mm-dd", + language: "ko", + autoclose: true + }); + }, + error:function(e){ + ajaxErrorAction(e); + } + }); +} + +function getApprvDiv(apprvList){ + $.ajax({ + type: 'POST', + url: '/counterIntelligence/getApprvDiv', + data: JSON.stringify(apprvList), + contentType: 'application/json', + dataType:"html", + beforeSend: function (xhr){ + xhr.setRequestHeader($("[name='_csrf_header']").val(), $("[name='_csrf']").val()); + }, + success: function(html){ + $("#apprvHome").empty().append(html) + $("#userModal").modal('hide'); + }, + error:function(e){ + ajaxErrorAction(e); + } + }); +} + +function getActivityCaseSummaryModal(receiptKey){ + $.ajax({ + url: '/counterIntelligence/activityCaseSummaryModal', + data: {receiptKey: receiptKey}, + type: 'GET', + dataType:"html", + success: function(html){ + $("#activityCaseSummaryModalBody").empty().append(html) + $("#activityCaseSummaryModal").modal('show'); }, error:function(e){ ajaxErrorAction(e); @@ -110,13 +172,14 @@ function saveActivityCase(status){ formData.append('suspectList['+idx+'].area', $(el).find(".suspectArea").val()); formData.append('suspectList['+idx+'].etc', $(el).find(".suspectEtc").val()); }) - $(".officerRow").each(function (idx, el){ - formData.append('officerList['+idx+'].type', $(el).find(".officerType").val()); - formData.append('officerList['+idx+'].userSeq', $(el).find(".userSeq").val()); - formData.append('officerList['+idx+'].ogCd', $(el).find(".ogCd").val()); - formData.append('officerList['+idx+'].ofcCd', $(el).find(".ofcCd").val()); - formData.append('officerList['+idx+'].titleCd', $(el).find(".titleCd").val()); - formData.append('officerList['+idx+'].userNm', $(el).find(".userNm").val()); + $(".apprvDiv").each(function (idx, el){ + formData.append('apprvList['+idx+'].userSeq', $(el).find(".userSeq").val()); + formData.append('apprvList['+idx+'].apprvPath', $(el).find(".apprvPath").val()); + formData.append('apprvList['+idx+'].apprvType', $(el).find(".apprvType").val()); + formData.append('apprvList['+idx+'].ogCd', $(el).find(".ogCd").val()); + formData.append('apprvList['+idx+'].ofcCd', $(el).find(".ofcCd").val()); + formData.append('apprvList['+idx+'].titleCd', $(el).find(".titleCd").val()); + formData.append('apprvList['+idx+'].userNm', $(el).find(".userNm").val()); }) $.ajax({ type : 'POST', @@ -127,8 +190,7 @@ function saveActivityCase(status){ success : function(result) { alert("저장되었습니다."); contentFade("out"); - $("#activityCaseEditModal").modal('hide'); - getActivityCaseViewModal(result); + location.reload(); }, error : function(xhr, status) { alert("저장에 실패하였습니다.") @@ -167,21 +229,58 @@ function deleteActivityCase(caseKey){ } function contentCheck(){ - if(!$("#receiptNum").val()){ - alert("접수번호을 입력해주세요.") + if(!$("#title").val()){ + alert("제목을 입력해주세요.") return false; } - if(!$("#receiptDt").val()){ - alert("접수일을 입력해주세요.") + if(!$("#reportDt").val()){ + alert("보고일자를 입력해주세요.") return false; } - if(!$("#receiptClue").val()){ - alert("접수단서를 입력해주세요.") - return false; - } - if(!$("#caseInfo").val()){ - alert("첩보개요를 입력해주세요.") - return false; + switch ($("#caseType").val()) { + case "ACT001": + if(!$("#caseProgress").val()){ + alert("외사활동 사항을 입력해주세요.") + return false; + } + if(!$("#description").val()){ + alert("외사활동이 필요한 이유를 입력해주세요.") + return false; + } + break; + case "ACT002": + if(!$("#caseProgress").val()){ + alert("외사활동 사항을 입력해주세요.") + return false; + } + if(!$("#description").val()){ + alert("조치 및 건의를 입력해주세요.") + return false; + } + break; + case "ACT003": + if(!$("#allegations").val()){ + alert("혐의요지를 입력해주세요.") + return false; + } + if(!$("#applicableLaw").val()){ + alert("적용법조를 입력해주세요.") + return false; + } + if(!$("#caseProgress").val()){ + alert("내사진행상황을 입력해주세요.") + return false; + } + if(!$("#description").val()){ + alert("조치 및 건의를 입력해주세요.") + return false; + } + if(!$("#activityResult").val()){ + alert("결과를 선택해주세요.") + return false; + } + break; + } return true; } diff --git a/src/main/resources/templates/common/modal/userModal.html b/src/main/resources/templates/common/modal/userModal.html index a24f4c33..4ea0670f 100644 --- a/src/main/resources/templates/common/modal/userModal.html +++ b/src/main/resources/templates/common/modal/userModal.html @@ -13,16 +13,16 @@
@@ -67,16 +67,20 @@ - - + + - - + + + + + + + - diff --git a/src/main/resources/templates/counterIntelligence/activityCase/activityCase1EditModal.html b/src/main/resources/templates/counterIntelligence/activityCase/activityCase1EditModal.html index 4e09189d..855a46a6 100644 --- a/src/main/resources/templates/counterIntelligence/activityCase/activityCase1EditModal.html +++ b/src/main/resources/templates/counterIntelligence/activityCase/activityCase1EditModal.html @@ -17,7 +17,7 @@ - +
@@ -27,29 +27,33 @@
- +
- + - +
- +
-
+
+ +
+ +
- +
+
+ +
+
+
+ +
+
+
+
diff --git a/src/main/resources/templates/counterIntelligence/activityCase/activityCase1ViewModal.html b/src/main/resources/templates/counterIntelligence/activityCase/activityCase1ViewModal.html index 4b08e8f6..8f8b2af5 100644 --- a/src/main/resources/templates/counterIntelligence/activityCase/activityCase1ViewModal.html +++ b/src/main/resources/templates/counterIntelligence/activityCase/activityCase1ViewModal.html @@ -1,77 +1,49 @@ - +