diff --git a/src/main/java/com/dbnt/faisp/config/FileController.java b/src/main/java/com/dbnt/faisp/config/FileController.java index 5643e648..d88b8233 100644 --- a/src/main/java/com/dbnt/faisp/config/FileController.java +++ b/src/main/java/com/dbnt/faisp/config/FileController.java @@ -148,6 +148,9 @@ public class FileController extends BaseService{ case "MajorFile" : downloadFile = majorStatusService.selectMajorFile(parentKey, fileSeq); break; + case "ciActivity": + downloadFile = ciService.selectCiaForeignerFile(parentKey, fileSeq); + break; } return downloadFile; } diff --git a/src/main/java/com/dbnt/faisp/main/counterIntelligence/CounterIntelligenceController.java b/src/main/java/com/dbnt/faisp/main/counterIntelligence/CounterIntelligenceController.java index 2ed0be52..d901db37 100644 --- a/src/main/java/com/dbnt/faisp/main/counterIntelligence/CounterIntelligenceController.java +++ b/src/main/java/com/dbnt/faisp/main/counterIntelligence/CounterIntelligenceController.java @@ -3,9 +3,12 @@ package com.dbnt.faisp.main.counterIntelligence; import com.dbnt.faisp.main.authMgt.service.AuthMgtService; import com.dbnt.faisp.main.codeMgt.service.CodeMgtService; import com.dbnt.faisp.main.counterIntelligence.model.CiWorkStatistics; +import com.dbnt.faisp.main.counterIntelligence.model.CiaFile; import com.dbnt.faisp.main.counterIntelligence.model.CounterIntelligenceActivity; import com.dbnt.faisp.main.counterIntelligence.model.CounterIntelligenceWork; import com.dbnt.faisp.main.counterIntelligence.service.CounterIntelligenceService; +import com.dbnt.faisp.main.equip.model.Equip; +import com.dbnt.faisp.main.equip.model.EquipFile; import com.dbnt.faisp.main.userInfo.model.UserInfo; import lombok.RequiredArgsConstructor; import org.springframework.security.core.annotation.AuthenticationPrincipal; @@ -13,9 +16,15 @@ import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartHttpServletRequest; import org.springframework.web.servlet.ModelAndView; +import java.io.BufferedOutputStream; +import java.io.File; +import java.io.FileInputStream; +import java.io.InputStream; import java.time.LocalDateTime; import java.util.List; +import javax.servlet.http.HttpServletResponse; + @RestController @RequiredArgsConstructor @RequestMapping("/counterIntelligence") @@ -119,6 +128,8 @@ public class CounterIntelligenceController { mav.addObject("sdiList", ciService.selectCiaSaftyDemandList(cia)); cia.setContentCnt(ciService.selectCiaSaftyDemandListCnt(cia)); cia.setPaginationInfo(); + mav.addObject("mgtOrganList", loginUser.getDownOrganCdList()); + mav.addObject("loginUserSeq", loginUser.getUserSeq()); mav.addObject("searchParams", cia); return mav; } @@ -184,6 +195,8 @@ public class CounterIntelligenceController { mav.addObject("mciList", ciService.selectCiaManageCompanyList(cia)); cia.setContentCnt(ciService.selectCiaManageCompanyListCnt(cia)); cia.setPaginationInfo(); + mav.addObject("mgtOrganList", loginUser.getDownOrganCdList()); + mav.addObject("loginUserSeq", loginUser.getUserSeq()); mav.addObject("searchParams", cia); return mav; } @@ -218,6 +231,8 @@ public class CounterIntelligenceController { mav.addObject("fiList", ciService.selectCiaForeignerList(cia)); cia.setContentCnt(ciService.selectCiaForeignerListCnt(cia)); cia.setPaginationInfo(); + mav.addObject("mgtOrganList", loginUser.getDownOrganCdList()); + mav.addObject("loginUserSeq", loginUser.getUserSeq()); mav.addObject("searchParams", cia); return mav; } @@ -252,6 +267,8 @@ public class CounterIntelligenceController { mav.addObject("eiList", ciService.selectCiaEduList(cia)); cia.setContentCnt(ciService.selectCiaEduListCnt(cia)); cia.setPaginationInfo(); + mav.addObject("mgtOrganList", loginUser.getDownOrganCdList()); + mav.addObject("loginUserSeq", loginUser.getUserSeq()); mav.addObject("searchParams", cia); return mav; } @@ -277,4 +294,44 @@ public class CounterIntelligenceController { return mav; } + @PostMapping("/deleteCounterIntelligenceActivity") + public void deleteCounterIntelligenceActivity(@AuthenticationPrincipal UserInfo loginUser, @RequestBody CounterIntelligenceActivity cia){ + ciService.deleteCounterIntelligenceActivity(cia); + } + + @GetMapping("/getCiaForeignerImg") + public void getCiaForeignerImg(CiaFile cf , HttpServletResponse response) throws Exception { + + CiaFile dbImg = ciService.selectCiaForeignerFile(cf.getCiKey(),cf.getFileSeq()); + + String realFile = dbImg.getSavePath()+"/"+ dbImg.getConvNm(); + String fileNm = dbImg.getConvNm(); + + + BufferedOutputStream out = null; + InputStream in = null; + + try { + response.setContentType("image/jpeg;charset=UTF-8"); + response.setHeader("Content-Disposition", "inline;filename=" + fileNm); + File file = new File(realFile); +// File file = new File(realFile + "/" + fileNm); + if(file.exists()){ + in = new FileInputStream(file); + out = new BufferedOutputStream(response.getOutputStream()); + int len; + byte[] buf = new byte[1024]; + while ((len = in.read(buf)) > 0) { + out.write(buf, 0, len); + } + } + } catch (Exception e) { + + } finally { + if(out != null){ out.flush(); } + if(out != null){ out.close(); } + if(in != null){ in.close(); } + } + } + } diff --git a/src/main/java/com/dbnt/faisp/main/counterIntelligence/repository/CiaFileRepository.java b/src/main/java/com/dbnt/faisp/main/counterIntelligence/repository/CiaFileRepository.java index 22518984..48eb9824 100644 --- a/src/main/java/com/dbnt/faisp/main/counterIntelligence/repository/CiaFileRepository.java +++ b/src/main/java/com/dbnt/faisp/main/counterIntelligence/repository/CiaFileRepository.java @@ -15,6 +15,8 @@ public interface CiaFileRepository extends JpaRepository findTopByCiKeyOrderByFileSeqDesc(Integer ciKey); + CiaFile findByCiKeyAndFileSeq(Integer ciKey, Integer fileSeq); + } diff --git a/src/main/java/com/dbnt/faisp/main/counterIntelligence/service/CounterIntelligenceService.java b/src/main/java/com/dbnt/faisp/main/counterIntelligence/service/CounterIntelligenceService.java index 328b07ee..670e2beb 100644 --- a/src/main/java/com/dbnt/faisp/main/counterIntelligence/service/CounterIntelligenceService.java +++ b/src/main/java/com/dbnt/faisp/main/counterIntelligence/service/CounterIntelligenceService.java @@ -22,6 +22,7 @@ import com.dbnt.faisp.main.counterIntelligence.repository.ForeignerInfoRepositor import com.dbnt.faisp.main.counterIntelligence.repository.HashTagLinkCiwRepository; import com.dbnt.faisp.main.counterIntelligence.repository.ManageCompanyInfoRepository; import com.dbnt.faisp.main.counterIntelligence.repository.SaftyDemandInfoRepository; +import com.dbnt.faisp.main.equip.model.EquipFile; import com.dbnt.faisp.main.hashTag.service.HashTagService; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; @@ -311,4 +312,16 @@ public class CounterIntelligenceService extends BaseService { return dbCia; } + public CiaFile selectCiaForeignerFile(Integer ciKey,Integer fileSeq) { + return ciaFileRepository.findByCiKeyAndFileSeq(ciKey,fileSeq); + } + + @Transactional + public void deleteCounterIntelligenceActivity(CounterIntelligenceActivity cia) { + CounterIntelligenceActivity dbCia = counterIntelligenceActivityRepository.findById(cia.getCiKey()).orElse(null); + dbCia.setContentStatus(cia.getContentStatus()); + counterIntelligenceActivityRepository.save(dbCia); + } + + } diff --git a/src/main/resources/mybatisMapper/CounterIntelligenceMapper.xml b/src/main/resources/mybatisMapper/CounterIntelligenceMapper.xml index b6741387..a569f76b 100644 --- a/src/main/resources/mybatisMapper/CounterIntelligenceMapper.xml +++ b/src/main/resources/mybatisMapper/CounterIntelligenceMapper.xml @@ -143,16 +143,31 @@ select cia.ci_key, + cia.content_status, cia.ci_type, (select item_value from code_mgt where item_cd = mci.mgt_organ) as mgt_organ, mci.company_nm, @@ -195,11 +226,28 @@ mci.department, mci."name", (select item_value from code_mgt where item_cd = cia.wrt_user_grd) as wrt_user_grd, + cia.wrt_user_seq, cia.wrt_user_nm, cia.wrt_dt from counter_intelligence_activity cia, manage_company_info mci where cia.ci_key = mci.ci_key + and cia.content_status != 'DST008' + + and cia.wrt_organ = #{wrtOrgan} + + + and mci.company_nm like '%'||#{companyNm}||'%' + + + and cia.wrt_user_nm like '%'||#{wrtUserNm}||'%' + + + and cia.wrt_dt >= #{startDate}::date + + + and cia.wrt_dt <= #{endDate}::date+1 + and mci.mgt_organ in #{item} @@ -212,6 +260,7 @@ select count(*) from( select cia.ci_key, + cia.content_status, cia.ci_type, (select item_value from code_mgt where item_cd = mci.mgt_organ) as mgt_organ, mci.company_nm, @@ -222,21 +271,39 @@ mci.department, mci."name", (select item_value from code_mgt where item_cd = cia.wrt_user_grd) as wrt_user_grd, + cia.wrt_user_seq, cia.wrt_user_nm, cia.wrt_dt - from counter_intelligence_activity cia, - manage_company_info mci - where cia.ci_key = mci.ci_key + from counter_intelligence_activity cia, + manage_company_info mci + where cia.ci_key = mci.ci_key + and cia.content_status != 'DST008' + + and cia.wrt_organ = #{wrtOrgan} + + + and mci.company_nm like '%'||#{companyNm}||'%' + + + and cia.wrt_user_nm like '%'||#{wrtUserNm}||'%' + + + and cia.wrt_dt >= #{startDate}::date + + + and cia.wrt_dt <= #{endDate}::date+1 + and mci.mgt_organ in #{item} - ORDER BY cia.ci_key DESC + ORDER BY cia.ci_key DESC )a select cia.ci_key, + cia.content_status, (select item_value from code_mgt where item_cd = ei.mgt_organ) as mgt_organ, ei.edu_date, ei.edu_type, ei.people_cnt, ei.description, (select item_value from code_mgt where item_cd = cia.wrt_user_grd) as wrt_user_grd, + cia.wrt_user_seq, cia.wrt_user_nm, cia.wrt_dt from counter_intelligence_activity cia, edu_info ei where cia.ci_key = ei.ci_key - and ei.mgt_organ in + and cia.content_status != 'DST008' + + and ei.mgt_organ = #{mgtOrgan} + + + and cia.wrt_user_nm like '%'||#{wrtUserNm}||'%' + + + + and ei.edu_date >= #{startDate}::date + + + and ei.edu_date <= #{endDate}::date + + + + + and cia.wrt_dt >= #{startDate}::date + + + and cia.wrt_dt <= #{endDate}::date+1 + + + and ei.mgt_organ in #{item} @@ -310,17 +457,41 @@ select count(*) from( select cia.ci_key, + cia.content_status, (select item_value from code_mgt where item_cd = ei.mgt_organ) as mgt_organ, ei.edu_date, ei.edu_type, ei.people_cnt, ei.description, (select item_value from code_mgt where item_cd = cia.wrt_user_grd) as wrt_user_grd, + cia.wrt_user_seq, cia.wrt_user_nm, cia.wrt_dt from counter_intelligence_activity cia, edu_info ei where cia.ci_key = ei.ci_key + + and ei.mgt_organ = #{mgtOrgan} + + + and cia.wrt_user_nm like '%'||#{wrtUserNm}||'%' + + + + and ei.edu_date >= #{startDate}::date + + + and ei.edu_date <= #{endDate}::date + + + + + and cia.wrt_dt >= #{startDate}::date + + + and cia.wrt_dt <= #{endDate}::date+1 + + and ei.mgt_organ in #{item} diff --git a/src/main/resources/static/js/counterIntelligence/ciaEdu.js b/src/main/resources/static/js/counterIntelligence/ciaEdu.js index ffd649ea..2ebbe8db 100644 --- a/src/main/resources/static/js/counterIntelligence/ciaEdu.js +++ b/src/main/resources/static/js/counterIntelligence/ciaEdu.js @@ -1,3 +1,11 @@ +$(function(){ + $("#dateSelectorDiv").datepicker({ + format: "yyyy-mm-dd", + language: "ko", + autoclose: true + }); +}) + $(document).on('click', '#addBtn', function (){ getCiaEduEditModal(null); }) @@ -25,8 +33,19 @@ function getCiaEduEditModal(ciKey){ } $(document).on('click', '#saveBtn', function (){ - if(confirm("저장하시겠습니까?")){ - const formData = new FormData($("#ciaEduEditForm")[0]); + if(confirm("저장하시겠습니까?")){ + save('DST007'); + } +}) + +$(document).on('click', '#saveTempBtn', function (){ + if(confirm("임시저장 하시겠습니까?")){ + save('DST001'); + } +}) + +function save(contentStatus){ + const formData = new FormData($("#ciaEduEditForm")[0]); for(const file of files) { if(!file.isDelete) formData.append('uploadFiles', file, file.name); @@ -34,6 +53,7 @@ $(document).on('click', '#saveBtn', function (){ $(".text-decoration-line-through").each(function (idx, el){ formData.append('fileSeq', $(el).attr("data-fileseq")); }) + formData.append('contentStatus', contentStatus); $.ajax({ type : 'POST', data : formData, @@ -50,9 +70,7 @@ $(document).on('click', '#saveBtn', function (){ contentFade("out"); } }) - - } -}) +} $(document).on('click', '.eiTr', function (){ getCiaEduViewModal($(this).find(".ciKey").val()); diff --git a/src/main/resources/static/js/counterIntelligence/ciaForeigner.js b/src/main/resources/static/js/counterIntelligence/ciaForeigner.js index c00bd23d..ec71cbd9 100644 --- a/src/main/resources/static/js/counterIntelligence/ciaForeigner.js +++ b/src/main/resources/static/js/counterIntelligence/ciaForeigner.js @@ -1,3 +1,11 @@ +$(function(){ + $("#dateSelectorDiv").datepicker({ + format: "yyyy-mm-dd", + language: "ko", + autoclose: true + }); +}) + $(document).on('click', '#addBtn', function (){ getCiaForeignerEditModal(null); }) @@ -16,7 +24,6 @@ function getCiaForeignerEditModal(ciKey){ autoclose: true }); setUploadDiv(); - setEditor('editor', '400'); $("#ciaForeignerEditModal").modal('show'); }, error:function(){ @@ -27,7 +34,18 @@ function getCiaForeignerEditModal(ciKey){ $(document).on('click', '#saveBtn', function (){ if(confirm("저장하시겠습니까?")){ - const formData = new FormData($("#ciaForeignerEditForm")[0]); + save('DST007'); + } +}) + +$(document).on('click', '#saveTempBtn', function (){ + if(confirm("임시저장 하시겠습니까?")){ + save('DST001'); + } +}) + +function save(contentStatus){ + const formData = new FormData($("#ciaForeignerEditForm")[0]); for(const file of files) { if(!file.isDelete) formData.append('uploadFiles', file, file.name); @@ -35,7 +53,7 @@ $(document).on('click', '#saveBtn', function (){ $(".text-decoration-line-through").each(function (idx, el){ formData.append('fileSeq', $(el).attr("data-fileseq")); }) - formData.append('monitoringInfo', CrossEditor.GetBodyValue()); + formData.append('contentStatus', contentStatus); $.ajax({ type : 'POST', data : formData, @@ -52,9 +70,8 @@ $(document).on('click', '#saveBtn', function (){ contentFade("out"); } }) - - } -}) + +} $(document).on('click', '.fiTr', function (){ getCiaForeignerViewModal($(this).find(".ciKey").val()); @@ -81,10 +98,11 @@ $(document).on('click', '#editBtn', function (){ getCiaForeignerEditModal($(this).attr("data-cikey")); }) +$(document).on('click', '#imgView', function (){ + window.open($(this).attr("data-img")); +}) + $(document).on('click', '#excelDown', function (){ exportExcel("외국인 커뮤니티 모니터링 현황","ciaForeignerTb"); }) -function OnInitCompleted(e){ - e.editorTarget.SetBodyValue(document.getElementById("monitoringInfo").value); -} diff --git a/src/main/resources/static/js/counterIntelligence/ciaManageCompany.js b/src/main/resources/static/js/counterIntelligence/ciaManageCompany.js index 2a8d5f78..11e38de6 100644 --- a/src/main/resources/static/js/counterIntelligence/ciaManageCompany.js +++ b/src/main/resources/static/js/counterIntelligence/ciaManageCompany.js @@ -1,3 +1,11 @@ +$(function(){ + $("#dateSelectorDiv").datepicker({ + format: "yyyy-mm-dd", + language: "ko", + autoclose: true + }); +}) + $(document).on('click', '#addBtn', function (){ getCiaManageCompanyEditModal(null); }) @@ -21,7 +29,18 @@ function getCiaManageCompanyEditModal(ciKey){ $(document).on('click', '#saveBtn', function (){ if(confirm("저장하시겠습니까?")){ - const formData = new FormData($("#ciaManageCompanyEditForm")[0]); + save('DST007'); + } +}) + +$(document).on('click', '#saveTempBtn', function (){ + if(confirm("임시저장 하시겠습니까?")){ + save('DST001'); + } +}) + +function save(contentStatus){ + const formData = new FormData($("#ciaManageCompanyEditForm")[0]); for(const file of files) { if(!file.isDelete) formData.append('uploadFiles', file, file.name); @@ -29,6 +48,7 @@ $(document).on('click', '#saveBtn', function (){ $(".text-decoration-line-through").each(function (idx, el){ formData.append('fileSeq', $(el).attr("data-fileseq")); }) + formData.append('contentStatus', contentStatus); $.ajax({ type : 'POST', data : formData, @@ -45,9 +65,7 @@ $(document).on('click', '#saveBtn', function (){ contentFade("out"); } }) - - } -}) +} $(document).on('click', '.mciTr', function (){ getCiaManageCompanyViewModal($(this).find(".ciKey").val()); @@ -73,3 +91,7 @@ $(document).on('click', '#editBtn', function (){ $("#ciaManageCompanyViewModal").modal('hide'); getCiaManageCompanyEditModal($(this).attr("data-cikey")); }) + +$(document).on('click', '#excelDown', function (){ + exportExcel("해양산업보호 관리업체 현황","mciTb"); +}) diff --git a/src/main/resources/static/js/counterIntelligence/ciaSaftyDemand.js b/src/main/resources/static/js/counterIntelligence/ciaSaftyDemand.js index 3a54ec5e..edf0f3b8 100644 --- a/src/main/resources/static/js/counterIntelligence/ciaSaftyDemand.js +++ b/src/main/resources/static/js/counterIntelligence/ciaSaftyDemand.js @@ -1,3 +1,11 @@ +$(function(){ + $("#dateSelectorDiv").datepicker({ + format: "yyyy-mm-dd", + language: "ko", + autoclose: true + }); +}) + $(document).on('click', '#addBtn', function (){ getCiaSaftyDemandEditModal(null); }) @@ -21,7 +29,18 @@ function getCiaSaftyDemandEditModal(ciKey){ $(document).on('click', '#saveBtn', function (){ if(confirm("저장하시겠습니까?")){ - const formData = new FormData($("#ciaSaftyDemandEditForm")[0]); + save('DST007'); + } +}) + +$(document).on('click', '#saveTempBtn', function (){ + if(confirm("임시저장 하시겠습니까?")){ + save('DST001'); + } +}) + +function save(contentStatus){ + const formData = new FormData($("#ciaSaftyDemandEditForm")[0]); for(const file of files) { if(!file.isDelete) formData.append('uploadFiles', file, file.name); @@ -29,6 +48,7 @@ $(document).on('click', '#saveBtn', function (){ $(".text-decoration-line-through").each(function (idx, el){ formData.append('fileSeq', $(el).attr("data-fileseq")); }) + formData.append('contentStatus', contentStatus); $.ajax({ type : 'POST', data : formData, @@ -45,7 +65,27 @@ $(document).on('click', '#saveBtn', function (){ contentFade("out"); } }) - +} + +$(document).on('click', '#deleteBtn', function (){ + const ciKey = $(this).attr("data-cikey"); + if(confirm("삭제 하시겠습니까?")){ + $.ajax({ + type : 'POST', + url : "/counterIntelligence/deleteCounterIntelligenceActivity", + data : {ciKey:ciKey,contentStatus:'DST008'}, + contentType: 'application/json', + beforeSend: function (xhr){ + xhr.setRequestHeader($("[name='_csrf_header']").val(), $("[name='_csrf']").val()); + }, + success : function() { + alert("삭제처리 되었습니다."); + location.reload(); + }, + error : function(xhr, status) { + alert("삭제처리에 실패하였습니다"); + } + }) } }) @@ -73,3 +113,7 @@ $(document).on('click', '#editBtn', function (){ $("#ciaSaftyDemandViewModal").modal('hide'); getCiaSaftyDemandEditModal($(this).attr("data-cikey")); }) + +$(document).on('click', '#excelDown', function (){ + exportExcel("치안수요 분석결과","sdiTb"); +}) diff --git a/src/main/resources/templates/counterIntelligence/ciaEduList.html b/src/main/resources/templates/counterIntelligence/ciaEduList.html index 70380f04..7da3b1c9 100644 --- a/src/main/resources/templates/counterIntelligence/ciaEduList.html +++ b/src/main/resources/templates/counterIntelligence/ciaEduList.html @@ -32,62 +32,27 @@
- +
@@ -113,6 +78,7 @@ 교육인원 비고 작성자 + 작성일 @@ -123,6 +89,7 @@ + @@ -132,7 +99,9 @@
-
+
+ +
-
diff --git a/src/main/resources/templates/counterIntelligence/ciaEduViewModal.html b/src/main/resources/templates/counterIntelligence/ciaEduViewModal.html index 199e574b..eb7dcde9 100644 --- a/src/main/resources/templates/counterIntelligence/ciaEduViewModal.html +++ b/src/main/resources/templates/counterIntelligence/ciaEduViewModal.html @@ -68,7 +68,7 @@ - @@ -86,8 +86,8 @@ @@ -143,7 +111,9 @@
-
+
+ +
-
diff --git a/src/main/resources/templates/counterIntelligence/ciaForeignerViewModal.html b/src/main/resources/templates/counterIntelligence/ciaForeignerViewModal.html index fb8fb9b3..778be9d9 100644 --- a/src/main/resources/templates/counterIntelligence/ciaForeignerViewModal.html +++ b/src/main/resources/templates/counterIntelligence/ciaForeignerViewModal.html @@ -73,15 +73,25 @@
- + + - + + + + + + + + + @@ -93,7 +103,7 @@
- +
- +
- - - + + + + - - - - - - + + + + + + +
문서번호 관리관서 업체명담당자부서담당자번호담당자명소재지관련
분야
특이사항연락처
(부서,이름)
작성자 작성일
+ [[${list.cellPhone}]] +
+ ([[${list.department}]] [[${list.name}]]) +
-
+
+ +
- +
@@ -117,10 +79,8 @@ - - - - + + + + + + + + + + + + + +
문서번호
@@ -132,13 +92,33 @@ + + + + + +
-
+
+ +