강석 최 2023-01-06 14:59:36 +09:00
commit 5ed8983fa1
25 changed files with 544 additions and 274 deletions

View File

@ -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;
}

View File

@ -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")
@ -117,6 +126,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;
}
@ -182,6 +193,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;
}
@ -216,6 +229,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;
}
@ -250,6 +265,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;
}
@ -275,4 +292,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(); }
}
}
}

View File

@ -15,6 +15,8 @@ public interface CiaFileRepository extends JpaRepository<CiaFile, CiaFile.CiaFil
Optional<CiaFile> findTopByCiKeyOrderByFileSeqDesc(Integer ciKey);
CiaFile findByCiKeyAndFileSeq(Integer ciKey, Integer fileSeq);
}

View File

@ -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);
}
}

View File

@ -93,9 +93,9 @@ public class MajorStatusController {
@PostMapping("/deleteContent")
@ResponseBody
public void deleteContent(@AuthenticationPrincipal UserInfo loginUser, @RequestBody List<MajorStatus> majorStatuses){
public void deleteContent(@RequestBody MajorStatus majorStatus){
majorStatusService.deleteContent(majorStatuses,loginUser);
majorStatusService.deleteContent(majorStatus);
}

View File

@ -11,4 +11,6 @@ public interface MajorFileRepository extends JpaRepository<MajorFile, MajorFile.
List<MajorFile> findByMajorKey(Integer majorKey);
Optional<MajorFile> findTopByMajorKeyOrderByFileSeq(Integer majorKey);
void deleteByMajorKey(Integer majorKey);
}

View File

@ -6,4 +6,5 @@ import org.springframework.data.jpa.repository.JpaRepository;
public interface MajorStatusRepository extends JpaRepository<MajorStatus, Integer> {
void deleteByMajorKey(Integer majorKey);
}

View File

@ -5,6 +5,7 @@ import com.dbnt.faisp.config.BaseService;
import com.dbnt.faisp.config.FileInfo;
import com.dbnt.faisp.main.counterIntelligence.activityCase.model.ActivityCaseFile;
import com.dbnt.faisp.main.equip.model.Equip;
import com.dbnt.faisp.main.fipTarget.model.VulnFile;
import com.dbnt.faisp.main.ivsgtMgt.boardInvestigation.model.BoardInvestigation;
import com.dbnt.faisp.main.ivsgtMgt.boardInvestigation.model.IvsgtFile;
import com.dbnt.faisp.main.ivsgtMgt.majorStatus.mapper.MajorStatusMapper;
@ -86,14 +87,17 @@ public class MajorStatusService extends BaseService {
}
}
public void deleteContent(MajorStatus majorStatus){
public void deleteContent(List<MajorStatus> majorStatuses, UserInfo loginUser){
for(MajorStatus majorStatus : majorStatuses){
majorStatusRepository.deleteByMajorKey(majorStatus.getMajorKey());
//파일삭제
List<MajorFile> MajorFileList = majorFileRepository.findByMajorKey(majorStatus.getMajorKey());
if(MajorFileList != null) {
for(MajorFile file: MajorFileList){
deleteStoredFile(new File(file.getSavePath(), file.getConvNm()));
}
}
majorFileRepository.deleteByMajorKey(majorStatus.getMajorKey());
majorStatusRepository.deleteById(majorStatus.getMajorKey());
}
private void deleteMajorFile(Integer majorKey, List<Integer> deleteFileSeq) {

View File

@ -135,16 +135,31 @@
<select id="selectCiaSaftyDemandList" parameterType="CounterIntelligenceActivity" resultType="CounterIntelligenceActivity">
select cia.ci_key,
cia.content_status,
cia.ci_type,
(select item_value from code_mgt where item_cd = cia.wrt_organ) as wrt_organ,
sdi.local_info,
sdi.outlook_problem,
(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,
safty_demand_info sdi
where cia.ci_key = sdi.ci_key
and cia.content_status != 'DST008'
<if test='wrtOrgan != null and wrtOrgan != ""'>
and cia.wrt_organ = #{wrtOrgan}
</if>
<if test='wrtUserNm != null and wrtUserNm != ""'>
and cia.wrt_user_nm like '%'||#{wrtUserNm}||'%'
</if>
<if test='startDate != null and startDate != ""'>
and cia.wrt_dt >= #{startDate}::date
</if>
<if test='endDate != null and endDate != ""'>
and cia.wrt_dt &lt;= #{endDate}::date+1
</if>
and cia.wrt_organ in
<foreach collection="downOrganCdList" item="item" index="index" separator="," open="(" close=")">
#{item}
@ -157,16 +172,31 @@
select count(*)
from(
select cia.ci_key,
cia.content_status,
cia.ci_type,
(select item_value from code_mgt where item_cd = cia.wrt_organ) as wrt_organ,
sdi.local_info,
sdi.outlook_problem,
(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,
safty_demand_info sdi
where cia.ci_key = sdi.ci_key
and cia.content_status != 'DST008'
<if test='wrtOrgan != null and wrtOrgan != ""'>
and cia.wrt_organ = #{wrtOrgan}
</if>
<if test='wrtUserNm != null and wrtUserNm != ""'>
and cia.wrt_user_nm like '%'||#{wrtUserNm}||'%'
</if>
<if test='startDate != null and startDate != ""'>
and cia.wrt_dt >= #{startDate}::date
</if>
<if test='endDate != null and endDate != ""'>
and cia.wrt_dt &lt;= #{endDate}::date+1
</if>
and cia.wrt_organ in
<foreach collection="downOrganCdList" item="item" index="index" separator="," open="(" close=")">
#{item}
@ -177,6 +207,7 @@
<select id="selectCiaManageCompanyList" parameterType="CounterIntelligenceActivity" resultType="CounterIntelligenceActivity">
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,
@ -187,11 +218,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'
<if test='wrtOrgan != null and wrtOrgan != ""'>
and cia.wrt_organ = #{wrtOrgan}
</if>
<if test='companyNm != null and companyNm != ""'>
and mci.company_nm like '%'||#{companyNm}||'%'
</if>
<if test='wrtUserNm != null and wrtUserNm != ""'>
and cia.wrt_user_nm like '%'||#{wrtUserNm}||'%'
</if>
<if test='startDate != null and startDate != ""'>
and cia.wrt_dt >= #{startDate}::date
</if>
<if test='endDate != null and endDate != ""'>
and cia.wrt_dt &lt;= #{endDate}::date+1
</if>
and mci.mgt_organ in
<foreach collection="downOrganCdList" item="item" index="index" separator="," open="(" close=")">
#{item}
@ -204,6 +252,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,
@ -214,11 +263,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'
<if test='wrtOrgan != null and wrtOrgan != ""'>
and cia.wrt_organ = #{wrtOrgan}
</if>
<if test='companyNm != null and companyNm != ""'>
and mci.company_nm like '%'||#{companyNm}||'%'
</if>
<if test='wrtUserNm != null and wrtUserNm != ""'>
and cia.wrt_user_nm like '%'||#{wrtUserNm}||'%'
</if>
<if test='startDate != null and startDate != ""'>
and cia.wrt_dt >= #{startDate}::date
</if>
<if test='endDate != null and endDate != ""'>
and cia.wrt_dt &lt;= #{endDate}::date+1
</if>
and mci.mgt_organ in
<foreach collection="downOrganCdList" item="item" index="index" separator="," open="(" close=")">
#{item}
@ -229,6 +295,7 @@
<select id="selectCiaForeignerList" parameterType="CounterIntelligenceActivity" resultType="CounterIntelligenceActivity">
select cia.ci_key,
cia.content_status,
(select item_value from code_mgt where item_cd = fi.mgt_organ) as mgt_organ,
fi.manager,
fi.commu_location,
@ -238,11 +305,38 @@
fi.monitoring_info,
fi.fix_date,
(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,
foreigner_info fi
where cia.ci_key = fi.ci_key
and cia.content_status != 'DST008'
<if test='manager != null and manager != ""'>
and fi.manager like '%'||#{manager}||'%'
</if>
<if test='wrtOrgan != null and wrtOrgan != ""'>
and cia.wrt_organ = #{wrtOrgan}
</if>
<if test='wrtUserNm != null and wrtUserNm != ""'>
and cia.wrt_user_nm like '%'||#{wrtUserNm}||'%'
</if>
<if test='dateSelector == "fixDate"'>
<if test='startDate != null and startDate != ""'>
and fi.fix_date >= #{startDate}::date
</if>
<if test='endDate != null and endDate != ""'>
and fi.fix_date &lt;= #{endDate}::date
</if>
</if>
<if test='dateSelector == "wrtDt"'>
<if test='startDate != null and startDate != ""'>
and cia.wrt_dt >= #{startDate}::date
</if>
<if test='endDate != null and endDate != ""'>
and cia.wrt_dt &lt;= #{endDate}::date+1
</if>
</if>
and fi.mgt_organ in
<foreach collection="downOrganCdList" item="item" index="index" separator="," open="(" close=")">
#{item}
@ -255,6 +349,7 @@
select count(*)
from(
select cia.ci_key,
cia.content_status,
(select item_value from code_mgt where item_cd = fi.mgt_organ) as mgt_organ,
fi.manager,
fi.commu_location,
@ -264,11 +359,38 @@
fi.monitoring_info,
fi.fix_date,
(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,
foreigner_info fi
where cia.ci_key = fi.ci_key
and cia.content_status != 'DST008'
<if test='manager != null and manager != ""'>
and fi.manager like '%'||#{manager}||'%'
</if>
<if test='wrtOrgan != null and wrtOrgan != ""'>
and cia.wrt_organ = #{wrtOrgan}
</if>
<if test='wrtUserNm != null and wrtUserNm != ""'>
and cia.wrt_user_nm like '%'||#{wrtUserNm}||'%'
</if>
<if test='dateSelector == "fixDate"'>
<if test='startDate != null and startDate != ""'>
and fi.fix_date >= #{startDate}::date
</if>
<if test='endDate != null and endDate != ""'>
and fi.fix_date &lt;= #{endDate}::date
</if>
</if>
<if test='dateSelector == "wrtDt"'>
<if test='startDate != null and startDate != ""'>
and cia.wrt_dt >= #{startDate}::date
</if>
<if test='endDate != null and endDate != ""'>
and cia.wrt_dt &lt;= #{endDate}::date+1
</if>
</if>
and fi.mgt_organ in
<foreach collection="downOrganCdList" item="item" index="index" separator="," open="(" close=")">
#{item}
@ -279,17 +401,42 @@
<select id="selectCiaEduList" parameterType="CounterIntelligenceActivity" resultType="CounterIntelligenceActivity">
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 cia.content_status != 'DST008'
<if test='mgtOrgan != null and mgtOrgan != ""'>
and ei.mgt_organ = #{mgtOrgan}
</if>
<if test='wrtUserNm != null and wrtUserNm != ""'>
and cia.wrt_user_nm like '%'||#{wrtUserNm}||'%'
</if>
<if test='dateSelector == "eduDate"'>
<if test='startDate != null and startDate != ""'>
and ei.edu_date >= #{startDate}::date
</if>
<if test='endDate != null and endDate != ""'>
and ei.edu_date &lt;= #{endDate}::date
</if>
</if>
<if test='dateSelector == "wrtDt"'>
<if test='startDate != null and startDate != ""'>
and cia.wrt_dt >= #{startDate}::date
</if>
<if test='endDate != null and endDate != ""'>
and cia.wrt_dt &lt;= #{endDate}::date+1
</if>
</if>
and ei.mgt_organ in
<foreach collection="downOrganCdList" item="item" index="index" separator="," open="(" close=")">
#{item}
@ -302,17 +449,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
<if test='mgtOrgan != null and mgtOrgan != ""'>
and ei.mgt_organ = #{mgtOrgan}
</if>
<if test='wrtUserNm != null and wrtUserNm != ""'>
and cia.wrt_user_nm like '%'||#{wrtUserNm}||'%'
</if>
<if test='dateSelector == "eduDate"'>
<if test='startDate != null and startDate != ""'>
and ei.edu_date >= #{startDate}::date
</if>
<if test='endDate != null and endDate != ""'>
and ei.edu_date &lt;= #{endDate}::date
</if>
</if>
<if test='dateSelector == "wrtDt"'>
<if test='startDate != null and startDate != ""'>
and cia.wrt_dt >= #{startDate}::date
</if>
<if test='endDate != null and endDate != ""'>
and cia.wrt_dt &lt;= #{endDate}::date+1
</if>
</if>
and ei.mgt_organ in
<foreach collection="downOrganCdList" item="item" index="index" separator="," open="(" close=")">
#{item}

View File

@ -1,3 +1,11 @@
$(function(){
$("#dateSelectorDiv").datepicker({
format: "yyyy-mm-dd",
language: "ko",
autoclose: true
});
})
$(document).on('click', '#addBtn', function (){
getCiaEduEditModal(null);
})
@ -26,6 +34,17 @@ function getCiaEduEditModal(ciKey){
$(document).on('click', '#saveBtn', function (){
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)
@ -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());

View File

@ -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,6 +34,17 @@ function getCiaForeignerEditModal(ciKey){
$(document).on('click', '#saveBtn', function (){
if(confirm("저장하시겠습니까?")){
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)
@ -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,
@ -54,7 +72,6 @@ $(document).on('click', '#saveBtn', function (){
})
}
})
$(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);
}

View File

@ -1,3 +1,11 @@
$(function(){
$("#dateSelectorDiv").datepicker({
format: "yyyy-mm-dd",
language: "ko",
autoclose: true
});
})
$(document).on('click', '#addBtn', function (){
getCiaManageCompanyEditModal(null);
})
@ -21,6 +29,17 @@ function getCiaManageCompanyEditModal(ciKey){
$(document).on('click', '#saveBtn', function (){
if(confirm("저장하시겠습니까?")){
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)
@ -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");
})

View File

@ -1,3 +1,11 @@
$(function(){
$("#dateSelectorDiv").datepicker({
format: "yyyy-mm-dd",
language: "ko",
autoclose: true
});
})
$(document).on('click', '#addBtn', function (){
getCiaSaftyDemandEditModal(null);
})
@ -21,6 +29,17 @@ function getCiaSaftyDemandEditModal(ciKey){
$(document).on('click', '#saveBtn', function (){
if(confirm("저장하시겠습니까?")){
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)
@ -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");
})

View File

@ -41,41 +41,20 @@ $(function(){
})
$(document).on('click', '#delectMajorBtn', function (){
if(confirm("선택한 대상을 삭제처리 하시겠습니까?")){
const checkArr = [];
$('input:checkbox[name=equChk]:checked').each(function (idx, el){
checkArr.push({});
const target = $(el);
checkArr[idx].equKey = Number(target.parents('tr').find('.majorKey').val());
})
deleteMajor(checkArr);
}
})
// $(document).on('click', '#deleteEquip', function (){
// if(confirm("선택한 대상을 삭제처리 하시겠습니까?")){
// const checkArr = [];
// checkArr.push({});
// checkArr[0].equKey = Number($('#mEquKey').val());
// deleteEquip(checkArr);
// }
// })
function deleteMajor(checkArr){
$(document).on('click', '#deleteMajorBtn', function (){
const majorKey = $('input[name=majorKey]').val();
console.log(majorKey);
if(confirm("삭제하시겠습니까?")){
contentFade("in");
$.ajax({
type : 'POST',
url : "/ivsgt/deleteContent",
data : JSON.stringify(checkArr),
data : JSON.stringify({majorKey:majorKey}),
contentType: 'application/json',
beforeSend: function (xhr){
xhr.setRequestHeader($("[name='_csrf_header']").val(), $("[name='_csrf']").val());
},
success : function() {
success : function(data) {
alert("삭제 처리되었습니다.");
location.reload();
},
@ -84,6 +63,39 @@ function deleteMajor(checkArr){
}
})
}
})
// $(document).on('click', '#delectMajorBtn', function (){
// if(confirm("선택한 대상을 삭제처리 하시겠습니까?")){
// const checkArr = [];
// $('input:checkbox[name=equChk]:checked').each(function (idx, el){
// checkArr.push({});
// const target = $(el);
// checkArr[idx].equKey = Number(target.parents('tr').find('.majorKey').val());
// })
// deleteMajor(checkArr);
//
// }
// })
// function deleteMajor(checkArr){
// $.ajax({
// type : 'POST',
// url : "/ivsgt/deleteContent",
// data : JSON.stringify(checkArr),
// 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("삭제처리에 실패하였습니다");
// }
// })
// }
function getEditModal(majorKey){
$.ajax({

View File

@ -32,50 +32,18 @@
</select>
</div>
<div class="col-8">
<!-- <div class="row">
<div class="row">
<div class="col-11">
<div class="row justify-content-end pb-1">
<div class="col-2" th:if="${accessAuth eq 'ACC003'}">
<select class="form-select form-select-sm" name="wrtOrgan">
<option value="">관서 선택</option>
<th:block th:each="code:${session.commonCode.get('OG')}">
<th:block th:if="${#lists.contains(downOrganCdList, code.itemCd)}">
<option th:value="${code.itemCd}" th:text="${code.itemValue}" th:selected="${code.itemCd eq searchParams.wrtOrgan}"></option>
</th:block>
</th:block>
</select>
</div>
<div class="col-2">
<select class="form-select form-select-sm" name="workRating">
<option value="">등급</option>
<th:block th:each="code:${session.commonCode.get('CIWR')}">
<option th:value="${code.itemCd}" th:text="${code.itemValue}" th:selected="${code.itemCd eq searchParams.workRating}"></option>
</th:block>
</select>
</div>
<div class="col-2">
<select class="form-select form-select-sm" name="arrestType1">
<option value="">검거유형1</option>
<th:block th:each="code:${session.commonCode.get('AT')}">
<option th:value="${code.itemCd}" th:text="${code.itemValue}" th:selected="${code.itemCd eq searchParams.arrestType1}"></option>
</th:block>
</select>
</div>
<div class="col-2">
<select class="form-select form-select-sm" name="arrestType2">
<option value="">검거유형2</option>
<th:block th:each="code:${session.commonCode.get(arrestType1)}">
<option th:value="${code.itemCd}" th:text="${code.itemValue}" th:selected="${code.itemCd eq searchParams.arrestType2}"></option>
</th:block>
</select>
</div>
</div>
<div class="row justify-content-end">
<div class="col-2">
<input type="text" class="form-control form-control-sm" placeholder="제목" name="title" th:value="${searchParams.title}">
</div>
<div class="col-2">
<input type="text" class="form-control form-control-sm" placeholder="해시태그" name="hashTags" th:value="${searchParams.hashTags}">
<select class="form-select form-select-sm" name="mgtOrgan">
<option value="">시행관서 선택</option>
<th:block th:each="code:${session.commonCode.get('OG')}">
<th:block th:if="${#lists.contains(mgtOrganList, code.itemCd)}">
<option th:value="${code.itemCd}" th:text="${code.itemValue}" th:selected="${code.itemCd eq searchParams.mgtOrgan}"></option>
</th:block>
</th:block>
</select>
</div>
<div class="col-2">
<input type="text" class="form-control form-control-sm" placeholder="작성자" name="wrtUserNm" th:value="${searchParams.wrtUserNm}">
@ -83,11 +51,8 @@
<div class="col-4">
<div class="input-group input-daterange" id="dateSelectorDiv">
<select class="form-select form-select-sm w-30" name="dateSelector">
<option value="eduDate" th:selected="${searchParams.dateSelector eq 'eduDate'}">시행일자</option>
<option value="wrtDt" th:selected="${searchParams.dateSelector eq 'wrtDt'}">작성일</option>
<option value="workStartDate" th:selected="${searchParams.dateSelector eq 'workStartDate'}">착수일</option>
<option value="workEndDate" th:selected="${searchParams.dateSelector eq 'workEndDate'}">종결일</option>
<option value="reRatingDate1" th:selected="${searchParams.dateSelector eq 'reRatingDate1'}">1차재평가</option>
<option value="reRatingDate2" th:selected="${searchParams.dateSelector eq 'reRatingDate2'}">2차재평가</option>
</select>
<input type="text" class="form-control form-control-sm w-35" id="startDate" name="startDate" placeholder="시작일" autocomplete="off" readonly th:value="${searchParams.startDate}">
<input type="text" class="form-control form-control-sm w-35" id="endDate" name="endDate" placeholder="종료일" autocomplete="off" readonly th:value="${searchParams.endDate}">
@ -98,7 +63,7 @@
<div class="col-1 d-grid gap-2">
<input type="submit" class="btn btn-sm btn-primary" id="searchBtn" value="검색">
</div>
</div> -->
</div>
</div>
</div>
</form>
@ -113,6 +78,7 @@
<th>교육인원</th>
<th>비고</th>
<th>작성자</th>
<th>작성일</th>
</tr>
</thead>
<tbody class="table-group-divider">
@ -123,6 +89,7 @@
<td th:text="${list.peopleCnt}"></td>
<td th:utext="${list.description}"></td>
<td th:text="|${list.wrtUserGrd} ${list.wrtUserNm}|"></td>
<td th:text="${#temporals.format(list.wrtDt, 'yyyy-MM-dd HH:mm')}"></td>
<th:block>
<input type="hidden" class="ciKey" th:value="${list.ciKey}">
</th:block>
@ -132,7 +99,9 @@
</div>
</div>
<div class="row justify-content-between">
<div class="col-auto"></div>
<div class="col-auto">
<button type="button" class="btn btn-success" id="excelDown">엑셀다운</button>
</div>
<div class="col-auto">
<nav aria-label="Page navigation">
<ul class="pagination mb-0">
@ -160,7 +129,6 @@
</div>
<div class="col-auto">
<input type="button" class="btn btn-success" value="등록" id="addBtn" th:unless="${accessAuth eq 'ACC001'}">
<button type="button" class="btn btn-success" id="excelDown" th:unless="${accessAuth eq 'ACC001'}">엑셀다운</button>
</div>
</div>
</div>

View File

@ -68,7 +68,7 @@
<th:block th:each="file:${cia.fileList}">
<tr class="fileInfoTr">
<td>
<a href="#" class="fileDownLink" data-board="ciWork"
<a href="#" class="fileDownLink" data-board="ciActivity"
th:data-parentkey="${file.ciKey}" th:data-fileseq="${file.fileSeq}"
th:text="|${file.origNm}.${file.fileExtn}|"></a>
</td>
@ -86,8 +86,8 @@
<div class="modal-footer justify-content-between bg-light">
<div class="col-auto">
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">닫기</button>
<th:block th:if="${accessAuth eq 'ACC003'}">
<button type="button" class="btn btn-danger" id="deleteCiWorkBtn" th:data-cikey="${cia.ciKey}">삭제</button>
<th:block th:if="${accessAuth eq 'ACC003'} or ${viewUserSeq eq cia.wrtUserSeq}">
<button type="button" class="btn btn-danger" id="deleteBtn" th:data-cikey="${cia.ciKey}">삭제</button>
</th:block>
</div>
<div class="col-auto">

View File

@ -65,8 +65,7 @@
<div class="row mb-1">
<label for="content" class="col-sm-1 col-form-label col-form-label-sm text-center">모니터링 사항</label>
<div class="col-sm-11">
<div id="editor"></div>
<textarea class="d-none" id="monitoringInfo"></textarea>
<textarea class="form-control form-control-sm" rows="5" cols="30" name="monitoringInfo"></textarea>
</div>
</div>
</th:block>

View File

@ -32,50 +32,21 @@
</select>
</div>
<div class="col-8">
<!-- <div class="row">
<div class="row">
<div class="col-11">
<div class="row justify-content-end pb-1">
<div class="col-2" th:if="${accessAuth eq 'ACC003'}">
<select class="form-select form-select-sm" name="wrtOrgan">
<option value="">관서 선택</option>
<th:block th:each="code:${session.commonCode.get('OG')}">
<th:block th:if="${#lists.contains(downOrganCdList, code.itemCd)}">
<option th:value="${code.itemCd}" th:text="${code.itemValue}" th:selected="${code.itemCd eq searchParams.wrtOrgan}"></option>
</th:block>
</th:block>
</select>
</div>
<div class="col-2">
<select class="form-select form-select-sm" name="workRating">
<option value="">등급</option>
<th:block th:each="code:${session.commonCode.get('CIWR')}">
<option th:value="${code.itemCd}" th:text="${code.itemValue}" th:selected="${code.itemCd eq searchParams.workRating}"></option>
</th:block>
</select>
</div>
<div class="col-2">
<select class="form-select form-select-sm" name="arrestType1">
<option value="">검거유형1</option>
<th:block th:each="code:${session.commonCode.get('AT')}">
<option th:value="${code.itemCd}" th:text="${code.itemValue}" th:selected="${code.itemCd eq searchParams.arrestType1}"></option>
</th:block>
</select>
</div>
<div class="col-2">
<select class="form-select form-select-sm" name="arrestType2">
<option value="">검거유형2</option>
<th:block th:each="code:${session.commonCode.get(arrestType1)}">
<option th:value="${code.itemCd}" th:text="${code.itemValue}" th:selected="${code.itemCd eq searchParams.arrestType2}"></option>
</th:block>
</select>
</div>
</div>
<div class="row justify-content-end">
<div class="col-2">
<input type="text" class="form-control form-control-sm" placeholder="제목" name="title" th:value="${searchParams.title}">
<select class="form-select form-select-sm" name="mgtOrgan">
<option value="">관리관서 선택</option>
<th:block th:each="code:${session.commonCode.get('OG')}">
<th:block th:if="${#lists.contains(mgtOrganList, code.itemCd)}">
<option th:value="${code.itemCd}" th:text="${code.itemValue}" th:selected="${code.itemCd eq searchParams.mgtOrgan}"></option>
</th:block>
</th:block>
</select>
</div>
<div class="col-2">
<input type="text" class="form-control form-control-sm" placeholder="해시태그" name="hashTags" th:value="${searchParams.hashTags}">
<input type="text" class="form-control form-control-sm" placeholder="담당관" name="manager" th:value="${searchParams.manager}">
</div>
<div class="col-2">
<input type="text" class="form-control form-control-sm" placeholder="작성자" name="wrtUserNm" th:value="${searchParams.wrtUserNm}">
@ -83,11 +54,8 @@
<div class="col-4">
<div class="input-group input-daterange" id="dateSelectorDiv">
<select class="form-select form-select-sm w-30" name="dateSelector">
<option value="fixDate" th:selected="${searchParams.dateSelector eq 'fixDate'}">선정일</option>
<option value="wrtDt" th:selected="${searchParams.dateSelector eq 'wrtDt'}">작성일</option>
<option value="workStartDate" th:selected="${searchParams.dateSelector eq 'workStartDate'}">착수일</option>
<option value="workEndDate" th:selected="${searchParams.dateSelector eq 'workEndDate'}">종결일</option>
<option value="reRatingDate1" th:selected="${searchParams.dateSelector eq 'reRatingDate1'}">1차재평가</option>
<option value="reRatingDate2" th:selected="${searchParams.dateSelector eq 'reRatingDate2'}">2차재평가</option>
</select>
<input type="text" class="form-control form-control-sm w-35" id="startDate" name="startDate" placeholder="시작일" autocomplete="off" readonly th:value="${searchParams.startDate}">
<input type="text" class="form-control form-control-sm w-35" id="endDate" name="endDate" placeholder="종료일" autocomplete="off" readonly th:value="${searchParams.endDate}">
@ -98,7 +66,7 @@
<div class="col-1 d-grid gap-2">
<input type="submit" class="btn btn-sm btn-primary" id="searchBtn" value="검색">
</div>
</div> -->
</div>
</div>
</div>
</form>
@ -143,7 +111,9 @@
</div>
</div>
<div class="row justify-content-between">
<div class="col-auto"></div>
<div class="col-auto">
<button type="button" class="btn btn-success" id="excelDown">엑셀다운</button>
</div>
<div class="col-auto">
<nav aria-label="Page navigation">
<ul class="pagination mb-0">
@ -171,7 +141,6 @@
</div>
<div class="col-auto">
<input type="button" class="btn btn-success" value="등록" id="addBtn" th:unless="${accessAuth eq 'ACC001'}">
<button type="button" class="btn btn-success" id="excelDown" th:unless="${accessAuth eq 'ACC001'}">엑셀다운</button>
</div>
</div>
</div>

View File

@ -73,9 +73,18 @@
</th:block>
<th:block th:unless="${#lists.isEmpty(cia.fileList)}">
<th:block th:each="file:${cia.fileList}">
<th:block th:if="${file.fileExtn eq 'jpg'} or ${file.fileExtn eq 'jpeg'} or ${file.fileExtn eq 'png'} or ${file.fileExtn eq 'gif'} or ${file.fileExtn eq 'bmp'}">
<tr class="fileInfoTr">
<td>
<a href="#" class="fileDownLink" data-board="ciWork"
<a href="#" th:data-img="|@{/counterIntelligence/getCiaForeignerImg(ciKey=${file.ciKey},fileSeq=${file.fileSeq})}|" id="imgView" th:text="|${file.origNm}.${file.fileExtn}|"></a>
</td>
<td th:text="${file.fileSize}"></td>
</tr>
</th:block>
<th:block th:unless="${file.fileExtn eq 'jpg'} or ${file.fileExtn eq 'jpeg'} or ${file.fileExtn eq 'png'} or ${file.fileExtn eq 'gif'} or ${file.fileExtn eq 'bmp'}">
<tr class="fileInfoTr">
<td>
<a href="#" class="fileDownLink" data-board="ciActivity"
th:data-parentkey="${file.ciKey}" th:data-fileseq="${file.fileSeq}"
th:text="|${file.origNm}.${file.fileExtn}|"></a>
</td>
@ -83,6 +92,7 @@
</tr>
</th:block>
</th:block>
</th:block>
</tbody>
</table>
</div>
@ -93,7 +103,7 @@
<div class="modal-footer justify-content-between bg-light">
<div class="col-auto">
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">닫기</button>
<th:block th:if="${accessAuth eq 'ACC003'}">
<th:block th:if="${accessAuth eq 'ACC003'} or ${viewUserSeq eq cia.wrtUserSeq}">
<button type="button" class="btn btn-danger" id="deleteCiWorkBtn" th:data-cikey="${cia.ciKey}">삭제</button>
</th:block>
</div>

View File

@ -32,63 +32,28 @@
</select>
</div>
<div class="col-8">
<!-- <div class="row">
<div class="row">
<div class="col-11">
<div class="row justify-content-end pb-1">
<div class="col-2" th:if="${accessAuth eq 'ACC003'}">
<div class="row justify-content-end">
<div class="col-2">
<select class="form-select form-select-sm" name="wrtOrgan">
<option value="">관서 선택</option>
<th:block th:each="code:${session.commonCode.get('OG')}">
<th:block th:if="${#lists.contains(downOrganCdList, code.itemCd)}">
<th:block th:if="${#lists.contains(mgtOrganList, code.itemCd)}">
<option th:value="${code.itemCd}" th:text="${code.itemValue}" th:selected="${code.itemCd eq searchParams.wrtOrgan}"></option>
</th:block>
</th:block>
</select>
</div>
<div class="col-2">
<select class="form-select form-select-sm" name="workRating">
<option value="">등급</option>
<th:block th:each="code:${session.commonCode.get('CIWR')}">
<option th:value="${code.itemCd}" th:text="${code.itemValue}" th:selected="${code.itemCd eq searchParams.workRating}"></option>
</th:block>
</select>
</div>
<div class="col-2">
<select class="form-select form-select-sm" name="arrestType1">
<option value="">검거유형1</option>
<th:block th:each="code:${session.commonCode.get('AT')}">
<option th:value="${code.itemCd}" th:text="${code.itemValue}" th:selected="${code.itemCd eq searchParams.arrestType1}"></option>
</th:block>
</select>
</div>
<div class="col-2">
<select class="form-select form-select-sm" name="arrestType2">
<option value="">검거유형2</option>
<th:block th:each="code:${session.commonCode.get(arrestType1)}">
<option th:value="${code.itemCd}" th:text="${code.itemValue}" th:selected="${code.itemCd eq searchParams.arrestType2}"></option>
</th:block>
</select>
</div>
</div>
<div class="row justify-content-end">
<div class="col-2">
<input type="text" class="form-control form-control-sm" placeholder="제목" name="title" th:value="${searchParams.title}">
</div>
<div class="col-2">
<input type="text" class="form-control form-control-sm" placeholder="해시태그" name="hashTags" th:value="${searchParams.hashTags}">
<input type="text" class="form-control form-control-sm" placeholder="업체명" name="companyNm" th:value="${searchParams.companyNm}">
</div>
<div class="col-2">
<input type="text" class="form-control form-control-sm" placeholder="작성자" name="wrtUserNm" th:value="${searchParams.wrtUserNm}">
</div>
<div class="col-4">
<div class="input-group input-daterange" id="dateSelectorDiv">
<select class="form-select form-select-sm w-30" name="dateSelector">
<option value="wrtDt" th:selected="${searchParams.dateSelector eq 'wrtDt'}">작성일</option>
<option value="workStartDate" th:selected="${searchParams.dateSelector eq 'workStartDate'}">착수일</option>
<option value="workEndDate" th:selected="${searchParams.dateSelector eq 'workEndDate'}">종결일</option>
<option value="reRatingDate1" th:selected="${searchParams.dateSelector eq 'reRatingDate1'}">1차재평가</option>
<option value="reRatingDate2" th:selected="${searchParams.dateSelector eq 'reRatingDate2'}">2차재평가</option>
</select>
작성일
<input type="text" class="form-control form-control-sm w-35" id="startDate" name="startDate" placeholder="시작일" autocomplete="off" readonly th:value="${searchParams.startDate}">
<input type="text" class="form-control form-control-sm w-35" id="endDate" name="endDate" placeholder="종료일" autocomplete="off" readonly th:value="${searchParams.endDate}">
</div>
@ -98,45 +63,53 @@
<div class="col-1 d-grid gap-2">
<input type="submit" class="btn btn-sm btn-primary" id="searchBtn" value="검색">
</div>
</div> -->
</div>
</div>
</div>
</form>
<div class="row">
<div class="col-12">
<table class="table table-sm table-bordered table-hover">
<table class="table table-sm table-bordered table-hover" id="mciTb">
<thead>
<tr class="table-secondary">
<th>문서번호</th>
<th>관리관서</th>
<th>업체명</th>
<th>담당자부서</th>
<th>담당자번호</th>
<th>담당자명</th>
<th>소재지</th>
<th>관련<br>분야</th>
<th>특이사항</th>
<th>연락처<br>(부서,이름)</th>
<th>작성자</th>
<th>작성일</th>
</tr>
</thead>
<tbody class="table-group-divider">
<tr class="mciTr" th:each="list:${mciList}">
<th:block>
<input type="hidden" class="ciKey" th:value="${list.ciKey}">
</th:block>
<td th:text="${list.ciKey}"></td>
<td th:text="${list.mgtOrgan}"></td>
<td th:text="${list.companyNm}"></td>
<td th:text="${list.department}"></td>
<td th:text="${list.cellPhone}"></td>
<td th:text="${list.name}"></td>
<td th:text="${list.companyLocation}"></td>
<td th:text="${list.relatedField}"></td>
<td th:text="${list.description}"></td>
<td th:inline="text">
[[${list.cellPhone}]]
<br>
([[${list.department}]] [[${list.name}]])
</td>
<td th:text="|${list.wrtUserGrd} ${list.wrtUserNm}|"></td>
<td th:text="${#temporals.format(list.wrtDt, 'yyyy-MM-dd HH:mm')}"></td>
<th:block>
<input type="hidden" class="ciKey" th:value="${list.ciKey}">
</th:block>
</tr>
</tbody>
</table>
</div>
</div>
<div class="row justify-content-between">
<div class="col-auto"></div>
<div class="col-auto">
<button type="button" class="btn btn-success" id="excelDown">엑셀다운</button>
</div>
<div class="col-auto">
<nav aria-label="Page navigation">
<ul class="pagination mb-0">

View File

@ -77,7 +77,7 @@
<th:block th:each="file:${cia.fileList}">
<tr class="fileInfoTr">
<td>
<a href="#" class="fileDownLink" data-board="ciWork"
<a href="#" class="fileDownLink" data-board="ciActivity"
th:data-parentkey="${file.ciKey}" th:data-fileseq="${file.fileSeq}"
th:text="|${file.origNm}.${file.fileExtn}|"></a>
</td>
@ -95,7 +95,7 @@
<div class="modal-footer justify-content-between bg-light">
<div class="col-auto">
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">닫기</button>
<th:block th:if="${accessAuth eq 'ACC003'}">
<th:block th:if="${accessAuth eq 'ACC003'} or ${viewUserSeq eq cia.wrtUserSeq}">
<button type="button" class="btn btn-danger" id="deleteCiWorkBtn" th:data-cikey="${cia.ciKey}">삭제</button>
</th:block>
</div>

View File

@ -32,63 +32,25 @@
</select>
</div>
<div class="col-8">
<!-- <div class="row">
<div class="row">
<div class="col-11">
<div class="row justify-content-end pb-1">
<div class="col-2" th:if="${accessAuth eq 'ACC003'}">
<div class="row justify-content-end">
<div class="col-2">
<select class="form-select form-select-sm" name="wrtOrgan">
<option value="">관서 선택</option>
<th:block th:each="code:${session.commonCode.get('OG')}">
<th:block th:if="${#lists.contains(downOrganCdList, code.itemCd)}">
<th:block th:if="${#lists.contains(mgtOrganList, code.itemCd)}">
<option th:value="${code.itemCd}" th:text="${code.itemValue}" th:selected="${code.itemCd eq searchParams.wrtOrgan}"></option>
</th:block>
</th:block>
</select>
</div>
<div class="col-2">
<select class="form-select form-select-sm" name="workRating">
<option value="">등급</option>
<th:block th:each="code:${session.commonCode.get('CIWR')}">
<option th:value="${code.itemCd}" th:text="${code.itemValue}" th:selected="${code.itemCd eq searchParams.workRating}"></option>
</th:block>
</select>
</div>
<div class="col-2">
<select class="form-select form-select-sm" name="arrestType1">
<option value="">검거유형1</option>
<th:block th:each="code:${session.commonCode.get('AT')}">
<option th:value="${code.itemCd}" th:text="${code.itemValue}" th:selected="${code.itemCd eq searchParams.arrestType1}"></option>
</th:block>
</select>
</div>
<div class="col-2">
<select class="form-select form-select-sm" name="arrestType2">
<option value="">검거유형2</option>
<th:block th:each="code:${session.commonCode.get(arrestType1)}">
<option th:value="${code.itemCd}" th:text="${code.itemValue}" th:selected="${code.itemCd eq searchParams.arrestType2}"></option>
</th:block>
</select>
</div>
</div>
<div class="row justify-content-end">
<div class="col-2">
<input type="text" class="form-control form-control-sm" placeholder="제목" name="title" th:value="${searchParams.title}">
</div>
<div class="col-2">
<input type="text" class="form-control form-control-sm" placeholder="해시태그" name="hashTags" th:value="${searchParams.hashTags}">
</div>
<div class="col-2">
<input type="text" class="form-control form-control-sm" placeholder="작성자" name="wrtUserNm" th:value="${searchParams.wrtUserNm}">
</div>
<div class="col-4">
<div class="input-group input-daterange" id="dateSelectorDiv">
<select class="form-select form-select-sm w-30" name="dateSelector">
<option value="wrtDt" th:selected="${searchParams.dateSelector eq 'wrtDt'}">작성일</option>
<option value="workStartDate" th:selected="${searchParams.dateSelector eq 'workStartDate'}">착수일</option>
<option value="workEndDate" th:selected="${searchParams.dateSelector eq 'workEndDate'}">종결일</option>
<option value="reRatingDate1" th:selected="${searchParams.dateSelector eq 'reRatingDate1'}">1차재평가</option>
<option value="reRatingDate2" th:selected="${searchParams.dateSelector eq 'reRatingDate2'}">2차재평가</option>
</select>
작성일
<input type="text" class="form-control form-control-sm w-35" id="startDate" name="startDate" placeholder="시작일" autocomplete="off" readonly th:value="${searchParams.startDate}">
<input type="text" class="form-control form-control-sm w-35" id="endDate" name="endDate" placeholder="종료일" autocomplete="off" readonly th:value="${searchParams.endDate}">
</div>
@ -98,13 +60,13 @@
<div class="col-1 d-grid gap-2">
<input type="submit" class="btn btn-sm btn-primary" id="searchBtn" value="검색">
</div>
</div> -->
</div>
</div>
</div>
</form>
<div class="row">
<div class="col-12">
<table class="table table-sm table-bordered table-hover">
<table class="table table-sm table-bordered table-hover" id="sdiTb">
<thead>
<tr class="table-secondary">
<th>문서번호</th>
@ -117,9 +79,21 @@
</thead>
<tbody class="table-group-divider">
<tr class="sdiTr" th:each="list:${sdiList}">
<th:block>
<input type="hidden" class="ciKey" th:value="${list.ciKey}">
<th:block th:if="${list.contentStatus eq 'DST001'} and ${list.wrtUserSeq eq loginUserSeq}">
<td th:text="|[임시저장]${list.ciKey}|"></td>
<td th:text="${list.wrtOrgan}"></td>
<td>
<th:block th:if="${#strings.length(list.localInfo)>35}" th:utext="|${#strings.substring(list.localInfo, 0, 35)}...|"></th:block>
<th:block th:unless="${#strings.length(list.localInfo)>35}" th:utext="${list.localInfo}"></th:block>
</td>
<td>
<th:block th:if="${#strings.length(list.outlookProblem)>35}" th:utext="|${#strings.substring(list.outlookProblem, 0, 35)}...|"></th:block>
<th:block th:unless="${#strings.length(list.outlookProblem)>35}" th:utext="${list.outlookProblem}"></th:block>
</td>
<td th:text="|${list.wrtUserGrd} ${list.wrtUserNm}|"></td>
<td th:text="${#temporals.format(list.wrtDt, 'yyyy-MM-dd HH:mm')}"></td>
</th:block>
<th:block th:unless="${list.contentStatus eq 'DST001'} and ${list.wrtUserSeq eq loginUserSeq}">
<td th:text="${list.ciKey}"></td>
<td th:text="${list.wrtOrgan}"></td>
<td>
@ -132,13 +106,19 @@
</td>
<td th:text="|${list.wrtUserGrd} ${list.wrtUserNm}|"></td>
<td th:text="${#temporals.format(list.wrtDt, 'yyyy-MM-dd HH:mm')}"></td>
</th:block>
<th:block>
<input type="hidden" class="ciKey" th:value="${list.ciKey}">
</th:block>
</tr>
</tbody>
</table>
</div>
</div>
<div class="row justify-content-between">
<div class="col-auto"></div>
<div class="col-auto">
<button type="button" class="btn btn-success" id="excelDown">엑셀다운</button>
</div>
<div class="col-auto">
<nav aria-label="Page navigation">
<ul class="pagination mb-0">

View File

@ -56,7 +56,7 @@
<th:block th:each="file:${cia.fileList}">
<tr class="fileInfoTr">
<td>
<a href="#" class="fileDownLink" data-board="ciWork"
<a href="#" class="fileDownLink" data-board="ciActivity"
th:data-parentkey="${file.ciKey}" th:data-fileseq="${file.fileSeq}"
th:text="|${file.origNm}.${file.fileExtn}|"></a>
</td>
@ -74,6 +74,9 @@
<div class="modal-footer justify-content-between bg-light">
<div class="col-auto">
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">닫기</button>
<th:block th:if="${accessAuth eq 'ACC003'} or ${viewUserSeq eq cia.wrtUserSeq}">
<button type="button" class="btn btn-danger" id="deleteBtn" th:data-cikey="${cia.ciKey}">삭제</button>
</th:block>
</div>
<div class="col-auto">
</div>

View File

@ -8,7 +8,7 @@
</th:block>
<div layout:fragment="content">
<main>
<h4>주요사건처리현황t</h4>
<h4>주요사건처리현황</h4>
<input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/>
<input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/>
<div class="row mx-0">

View File

@ -76,5 +76,6 @@
<th:block th:if="${userSeq eq majorStatus.wrtUserSeq}"><!--작성자일 경우 수정 허용-->
<button type="button" class="btn btn-warning" id="editBtn" th:data-majorkey="${majorStatus.majorKey}">수정</button>
</th:block>
<button type="button" class="btn btn-danger" id="deleteMajorBtn">삭제</button>
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">닫기</button>
</div>