치안수요 분석결과 오류 수정중.

master
강석 최 2023-04-18 12:01:06 +09:00
parent 341d7b60bb
commit 2fd4fb2d2e
21 changed files with 333 additions and 363 deletions

View File

@ -38,8 +38,8 @@ public class BaseService {
protected String sriPath;
@Value("${file.dir.ciw}")
protected String ciwPath;
@Value("${file.dir.cia.safty}")
protected String ciaSaftyPath;
@Value("${file.dir.cia.safety}")
protected String ciaSafetyPath;
@Value("${file.dir.cia.company}")
protected String ciaCompanyPath;
@Value("${file.dir.cia.foreigner}")

View File

@ -4,8 +4,6 @@ import com.dbnt.faisp.main.authMgt.service.AuthMgtService;
import com.dbnt.faisp.main.codeMgt.service.CodeMgtService;
import com.dbnt.faisp.main.counterIntelligence.model.*;
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,6 +11,7 @@ import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletResponse;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
@ -20,8 +19,6 @@ import java.io.InputStream;
import java.time.LocalDateTime;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
@RestController
@RequiredArgsConstructor
@RequestMapping("/counterIntelligence")
@ -121,89 +118,55 @@ public class CounterIntelligenceController {
mav.addObject("searchParams", ciWorkStatistics);
return mav;
}
@GetMapping("/ciaSaftyDemandList")
public ModelAndView ciaSaftyDemandList(@AuthenticationPrincipal UserInfo loginUser, CounterIntelligenceActivity cia){
ModelAndView mav = new ModelAndView("counterIntelligence/ciaSaftyDemandList");
@PostMapping("/saveCiActivity")
public Integer saveCiActivity(CounterIntelligenceActivity cia,@AuthenticationPrincipal UserInfo loginUser,
MultipartHttpServletRequest request,
@RequestParam(value = "fileSeq", required = false) List<Integer> deleteFileSeq){
cia.setMultipartFileList(request.getMultiFileMap().get("uploadFiles"));
if(cia.getCiKey()==null){
cia.setWrtOrgan(loginUser.getOgCd());
cia.setWrtPart(loginUser.getOfcCd());
cia.setWrtUserSeq(loginUser.getUserSeq());
cia.setWrtUserGrd(loginUser.getTitleCd());
cia.setWrtUserNm(loginUser.getUserNm());
cia.setWrtDt(LocalDateTime.now());
}
Integer ciKey = ciService.saveCiActivity(cia, deleteFileSeq);
return ciKey;
}
@GetMapping("/ciaSafetyDemandList")
public ModelAndView ciaSafetyDemandList(@AuthenticationPrincipal UserInfo loginUser, CounterIntelligenceActivity cia){
ModelAndView mav = new ModelAndView("counterIntelligence/ciaSafetyDemandList");
String accessAuth = authMgtService.selectAccessConfigList
(loginUser.getUserSeq(), "/counterIntelligence/ciaSaftyDemandList").get(0).getAccessAuth();
(loginUser.getUserSeq(), "/counterIntelligence/ciaSafetyDemandList").get(0).getAccessAuth();
mav.addObject("accessAuth", accessAuth);
cia.setDownOrganCdList(loginUser.getDownOrganCdList());
cia.setWrtUserSeq(loginUser.getUserSeq());
cia.setQueryInfo();
mav.addObject("sdiList", ciService.selectCiaSaftyDemandList(cia));
cia.setContentCnt(ciService.selectCiaSaftyDemandListCnt(cia));
mav.addObject("sdiList", ciService.selectCiaSafetyDemandList(cia));
cia.setContentCnt(ciService.selectCiaSafetyDemandListCnt(cia));
cia.setPaginationInfo();
mav.addObject("mgtOrganList", loginUser.getDownOrganCdList());
mav.addObject("loginUserSeq", loginUser.getUserSeq());
mav.addObject("searchParams", cia);
return mav;
}
@GetMapping("/ciaSaftyDemandEditModal")
public ModelAndView ciaSaftyDemandEditModal(@AuthenticationPrincipal UserInfo loginUser, CounterIntelligenceActivity cia){
ModelAndView mav = new ModelAndView("counterIntelligence/ciaSaftyDemandEditModal");
if(cia.getCiKey() != null) {
cia = ciService.selectSaftyDemandInfo(cia);
}else{
cia.setSaftyDemandInfo(new SaftyDemandInfo());
}
mav.addObject("cia", cia);
return mav;
}
@PostMapping("/saveCiActivity")
public Integer saveCiActivity(CounterIntelligenceActivity cia,@AuthenticationPrincipal UserInfo loginUser,
MultipartHttpServletRequest request,
@RequestParam(value = "fileSeq", required = false) List<Integer> deleteFileSeq){
cia.setMultipartFileList(request.getMultiFileMap().get("uploadFiles"));
if(cia.getCiKey()==null){
cia.setWrtOrgan(loginUser.getOgCd());
cia.setWrtPart(loginUser.getOfcCd());
cia.setWrtUserSeq(loginUser.getUserSeq());
cia.setWrtUserGrd(loginUser.getTitleCd());
cia.setWrtUserNm(loginUser.getUserNm());
cia.setWrtDt(LocalDateTime.now());
}
Integer ciKey = ciService.saveCiActivity(cia, deleteFileSeq);
switch (cia.getCiType()) {
case "SDI": // 치안수요분석
ciService.saveSaftyDemand(cia);
break;
case "MCI": // 해양산업보호관리업체
ciService.saveManageCompany(cia);
break;
case "FI": // 외국인커뮤니티모니터링
ciService.saveForeigner(cia);
break;
case "EI": // 방첩교육실시
ciService.saveEdu(cia);
break;
}
return ciKey;
}
@GetMapping("/ciaSaftyDemandViewModal")
public ModelAndView ciaSaftyDemandViewModal(@AuthenticationPrincipal UserInfo loginUser, CounterIntelligenceActivity cia){
ModelAndView mav = new ModelAndView("counterIntelligence/ciaSaftyDemandViewModal");
String accessAuth = authMgtService.selectAccessConfigList
(loginUser.getUserSeq(), "/counterIntelligence/ciaSaftyDemandList").get(0).getAccessAuth();
mav.addObject("accessAuth", accessAuth);
mav.addObject("lineSeparator", '\n');
mav.addObject("viewUserSeq", loginUser.getUserSeq());
mav.addObject("cia", ciService.selectSaftyDemandInfo(cia));
return mav;
}
@GetMapping("/ciaManageCompanyList")
public ModelAndView ciaManageCompanyList(@AuthenticationPrincipal UserInfo loginUser, CounterIntelligenceActivity cia){
ModelAndView mav = new ModelAndView("counterIntelligence/ciaManageCompanyList");
String accessAuth = authMgtService.selectAccessConfigList
(loginUser.getUserSeq(), "/counterIntelligence/ciaManageCompanyList").get(0).getAccessAuth();
(loginUser.getUserSeq(), "/counterIntelligence/ciaManageCompanyList").get(0).getAccessAuth();
mav.addObject("accessAuth", accessAuth);
cia.setWrtUserSeq(loginUser.getUserSeq());
cia.setDownOrganCdList(loginUser.getDownOrganCdList());
cia.setQueryInfo();
@ -215,40 +178,16 @@ public class CounterIntelligenceController {
mav.addObject("searchParams", cia);
return mav;
}
@GetMapping("/ciaManageCompanyEditModal")
public ModelAndView ciaManageCompanyEditModal(@AuthenticationPrincipal UserInfo loginUser, CounterIntelligenceActivity cia){
ModelAndView mav = new ModelAndView("counterIntelligence/ciaManageCompanyEditModal");
if(cia.getCiKey() != null) {
cia = ciService.selectManageCompanyInfo(cia);
}else{
cia.setManageCompanyInfo(new ManageCompanyInfo());
}
mav.addObject("mgtOrganList", loginUser.getDownOrganCdList());
mav.addObject("cia", cia);
return mav;
}
@GetMapping("/ciaManageCompanyViewModal")
public ModelAndView ciaManageCompanyViewModal(@AuthenticationPrincipal UserInfo loginUser, CounterIntelligenceActivity cia){
ModelAndView mav = new ModelAndView("counterIntelligence/ciaManageCompanyViewModal");
String accessAuth = authMgtService.selectAccessConfigList
(loginUser.getUserSeq(), "/counterIntelligence/ciaManageCompanyList").get(0).getAccessAuth();
mav.addObject("accessAuth", accessAuth);
mav.addObject("lineSeparator", '\n');
mav.addObject("viewUserSeq", loginUser.getUserSeq());
mav.addObject("cia", ciService.selectManageCompanyInfo(cia));
return mav;
}
@GetMapping("/ciaForeignerList")
public ModelAndView ciaForeignerList(@AuthenticationPrincipal UserInfo loginUser, CounterIntelligenceActivity cia){
ModelAndView mav = new ModelAndView("counterIntelligence/ciaForeignerList");
String accessAuth = authMgtService.selectAccessConfigList
(loginUser.getUserSeq(), "/counterIntelligence/ciaForeignerList").get(0).getAccessAuth();
(loginUser.getUserSeq(), "/counterIntelligence/ciaForeignerList").get(0).getAccessAuth();
mav.addObject("accessAuth", accessAuth);
cia.setWrtUserSeq(loginUser.getUserSeq());
cia.setDownOrganCdList(loginUser.getDownOrganCdList());
cia.setQueryInfo();
@ -260,40 +199,15 @@ public class CounterIntelligenceController {
mav.addObject("searchParams", cia);
return mav;
}
@GetMapping("/ciaForeignerEditModal")
public ModelAndView ciaForeignerEditModal(@AuthenticationPrincipal UserInfo loginUser, CounterIntelligenceActivity cia){
ModelAndView mav = new ModelAndView("counterIntelligence/ciaForeignerEditModal");
if(cia.getCiKey() != null) {
cia = ciService.selectForeignerInfo(cia);
}else{
cia.setForeignerInfo(new ForeignerInfo());
}
mav.addObject("mgtOrganList", loginUser.getDownOrganCdList());
mav.addObject("cia", cia);
return mav;
}
@GetMapping("/ciaForeignerViewModal")
public ModelAndView ciaForeignerViewModal(@AuthenticationPrincipal UserInfo loginUser, CounterIntelligenceActivity cia){
ModelAndView mav = new ModelAndView("counterIntelligence/ciaForeignerViewModal");
String accessAuth = authMgtService.selectAccessConfigList
(loginUser.getUserSeq(), "/counterIntelligence/ciaForeignerList").get(0).getAccessAuth();
mav.addObject("accessAuth", accessAuth);
mav.addObject("lineSeparator", '\n');
mav.addObject("viewUserSeq", loginUser.getUserSeq());
mav.addObject("cia", ciService.selectForeignerInfo(cia));
return mav;
}
@GetMapping("/ciaEduList")
public ModelAndView ciaEduList(@AuthenticationPrincipal UserInfo loginUser, CounterIntelligenceActivity cia){
ModelAndView mav = new ModelAndView("counterIntelligence/ciaEduList");
ModelAndView mav = new ModelAndView("counterIntelligence/ciaEduList");
String accessAuth = authMgtService.selectAccessConfigList
(loginUser.getUserSeq(), "/counterIntelligence/ciaEduList").get(0).getAccessAuth();
(loginUser.getUserSeq(), "/counterIntelligence/ciaEduList").get(0).getAccessAuth();
mav.addObject("accessAuth", accessAuth);
cia.setWrtUserSeq(loginUser.getUserSeq());
cia.setDownOrganCdList(loginUser.getDownOrganCdList());
cia.setQueryInfo();
@ -305,39 +219,69 @@ public class CounterIntelligenceController {
mav.addObject("searchParams", cia);
return mav;
}
@GetMapping("/ciaEduEditModal")
public ModelAndView ciaEduEditModal(@AuthenticationPrincipal UserInfo loginUser, CounterIntelligenceActivity cia){
ModelAndView mav = new ModelAndView("counterIntelligence/ciaEduEditModal");
if(cia.getCiKey() != null) {
cia = ciService.selectEduInfo(cia);
}else{
cia.setEduInfo(new EduInfo());
@GetMapping("/ciaEditModal")
public ModelAndView ciaEditModal(@AuthenticationPrincipal UserInfo loginUser, CounterIntelligenceActivity cia){
ModelAndView mav = null;
switch (cia.getCiType()){
case "SDI":
mav = new ModelAndView("counterIntelligence/ciaSafetyDemandEditModal");
break;
case "MCI":
mav = new ModelAndView("counterIntelligence/ciaManageCompanyEditModal");
break;
case "FI":
mav = new ModelAndView("counterIntelligence/ciaForeignerEditModal");
break;
case "EI":
mav = new ModelAndView("counterIntelligence/ciaEduEditModal");
break;
}
mav.addObject("mgtOrganList", loginUser.getDownOrganCdList());
mav.addObject("cia", cia);
mav.addObject("cia", ciService.selectCiaInfo(cia));
return mav;
}
@GetMapping("/ciaEduViewModal")
public ModelAndView ciaEduViewModal(@AuthenticationPrincipal UserInfo loginUser, CounterIntelligenceActivity cia){
ModelAndView mav = new ModelAndView("counterIntelligence/ciaEduViewModal");
String accessAuth = authMgtService.selectAccessConfigList
@GetMapping("/ciaViewModal")
public ModelAndView ciaViewModal(@AuthenticationPrincipal UserInfo loginUser, CounterIntelligenceActivity cia){
ModelAndView mav = null;
String accessAuth = null;
switch (cia.getCiType()){
case "SDI":
mav = new ModelAndView("counterIntelligence/ciaSafetyDemandViewModal");
accessAuth = authMgtService.selectAccessConfigList
(loginUser.getUserSeq(), "/counterIntelligence/ciaSafetyDemandList").get(0).getAccessAuth();
break;
case "MCI":
mav = new ModelAndView("counterIntelligence/ciaManageCompanyViewModal");
accessAuth = authMgtService.selectAccessConfigList
(loginUser.getUserSeq(), "/counterIntelligence/ciaManageCompanyList").get(0).getAccessAuth();
break;
case "FI":
mav = new ModelAndView("counterIntelligence/ciaForeignerViewModal");
accessAuth = authMgtService.selectAccessConfigList
(loginUser.getUserSeq(), "/counterIntelligence/ciaForeignerList").get(0).getAccessAuth();
break;
case "EI":
mav = new ModelAndView("counterIntelligence/ciaEduViewModal");
accessAuth = authMgtService.selectAccessConfigList
(loginUser.getUserSeq(), "/counterIntelligence/ciaEduList").get(0).getAccessAuth();
break;
}
mav.addObject("accessAuth", accessAuth);
mav.addObject("lineSeparator", '\n');
mav.addObject("viewUserSeq", loginUser.getUserSeq());
mav.addObject("cia", ciService.selectEduInfo(cia));
mav.addObject("cia", ciService.selectCiaInfo(cia));
return mav;
}
@PostMapping("/deleteCounterIntelligenceActivity")
public void deleteCounterIntelligenceActivity(@AuthenticationPrincipal UserInfo loginUser,@RequestBody CounterIntelligenceActivity cia){
cia.setContentStatus("DST008");
ciService.deleteCounterIntelligenceActivity(cia);
cia.setContentStatus("DST008");
ciService.deleteCounterIntelligenceActivity(cia);
}
@GetMapping("/getCiaForeignerImg")
public void getCiaForeignerImg(CiaFile cf , HttpServletResponse response) throws Exception {
@ -372,5 +316,5 @@ public class CounterIntelligenceController {
if(in != null){ in.close(); }
}
}
}

View File

@ -23,9 +23,9 @@ public interface CounterIntelligenceMapper {
List<Integer> selectCiWorkYearList();
List<CounterIntelligenceActivity> selectCiaSaftyDemandList(CounterIntelligenceActivity cia);
List<CounterIntelligenceActivity> selectCiaSafetyDemandList(CounterIntelligenceActivity cia);
Integer selectCiaSaftyDemandListCnt(CounterIntelligenceActivity cia);
Integer selectCiaSafetyDemandListCnt(CounterIntelligenceActivity cia);
List<CounterIntelligenceActivity> selectCiaManageCompanyList(CounterIntelligenceActivity cia);

View File

@ -51,7 +51,7 @@ public class CounterIntelligenceActivity extends BaseModel {
@Transient
private Integer fileCnt;
@Transient
private SaftyDemandInfo saftyDemandInfo;
private SafetyDemandInfo safetyDemandInfo;
@Transient
private ManageCompanyInfo manageCompanyInfo;
@Transient

View File

@ -16,8 +16,8 @@ import javax.persistence.*;
@NoArgsConstructor
@DynamicInsert
@DynamicUpdate
@Table(name = "safty_demand_info")
public class SaftyDemandInfo {
@Table(name = "safety_demand_info")
public class SafetyDemandInfo {
@Id
@Column(name = "ci_key")
private Integer ciKey;

View File

@ -0,0 +1,10 @@
package com.dbnt.faisp.main.counterIntelligence.repository;
import com.dbnt.faisp.main.counterIntelligence.model.SafetyDemandInfo;
import org.springframework.data.jpa.repository.JpaRepository;
public interface SafetyDemandInfoRepository extends JpaRepository<SafetyDemandInfo, Integer> {
}

View File

@ -1,13 +0,0 @@
package com.dbnt.faisp.main.counterIntelligence.repository;
import com.dbnt.faisp.main.counterIntelligence.model.SaftyDemandInfo;
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;
import java.util.Optional;
public interface SaftyDemandInfoRepository extends JpaRepository<SaftyDemandInfo, Integer> {
}

View File

@ -12,7 +12,7 @@ import com.dbnt.faisp.main.counterIntelligence.model.EduInfo;
import com.dbnt.faisp.main.counterIntelligence.model.ForeignerInfo;
import com.dbnt.faisp.main.counterIntelligence.model.HashTagLinkCiw;
import com.dbnt.faisp.main.counterIntelligence.model.ManageCompanyInfo;
import com.dbnt.faisp.main.counterIntelligence.model.SaftyDemandInfo;
import com.dbnt.faisp.main.counterIntelligence.model.SafetyDemandInfo;
import com.dbnt.faisp.main.counterIntelligence.repository.CiaFileRepository;
import com.dbnt.faisp.main.counterIntelligence.repository.CiwFileRepository;
import com.dbnt.faisp.main.counterIntelligence.repository.CounterIntelligenceActivityRepository;
@ -21,13 +21,14 @@ import com.dbnt.faisp.main.counterIntelligence.repository.EduInfoRepository;
import com.dbnt.faisp.main.counterIntelligence.repository.ForeignerInfoRepository;
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.counterIntelligence.repository.SafetyDemandInfoRepository;
import com.dbnt.faisp.main.equip.model.EquipFile;
import com.dbnt.faisp.main.hashTag.service.HashTagService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.servlet.ModelAndView;
import java.io.File;
import java.util.List;
@ -42,7 +43,7 @@ public class CounterIntelligenceService extends BaseService {
private final HashTagLinkCiwRepository hashTagLinkCiwRepository;
private final CounterIntelligenceActivityRepository counterIntelligenceActivityRepository;
private final CiaFileRepository ciaFileRepository;
private final SaftyDemandInfoRepository saftyDemandInfoRepository;
private final SafetyDemandInfoRepository safetyDemandInfoRepository;
private final ManageCompanyInfoRepository manageCompanyInfoRepository;
private final ForeignerInfoRepository foreignerInfoRepository;
private final EduInfoRepository eduInfoRepository;
@ -148,180 +149,208 @@ public class CounterIntelligenceService extends BaseService {
ciWorkStatisticsList.add(totalStatistics);
return ciWorkStatisticsList;
}
@Transactional
public Integer saveCiActivity(CounterIntelligenceActivity cia, List<Integer> deleteFileSeq) {
Integer ciKey = counterIntelligenceActivityRepository.save(cia).getCiKey();
if(deleteFileSeq != null && deleteFileSeq.size()>0){
deleteCiaFile(ciKey, deleteFileSeq);
}
if(cia.getMultipartFileList()!=null){
saveCiaUploadFiles(ciKey, cia.getMultipartFileList());
}
return ciKey;
Integer ciKey = counterIntelligenceActivityRepository.save(cia).getCiKey();
if(deleteFileSeq != null && deleteFileSeq.size()>0){
deleteCiaFile(ciKey, deleteFileSeq);
}
if(cia.getMultipartFileList()!=null){
saveCiaUploadFiles(ciKey, cia.getMultipartFileList());
}
switch (cia.getCiType()) {
case "SDI": // 치안수요분석
saveSafetyDemand(cia);
break;
case "MCI": // 해양산업보호관리업체
saveManageCompany(cia);
break;
case "FI": // 외국인커뮤니티모니터링
saveForeigner(cia);
break;
case "EI": // 방첩교육실시
saveEdu(cia);
break;
}
return ciKey;
}
private void deleteCiaFile(Integer ciKey, List<Integer> deleteFileSeq) {
List<CiaFile> ciaFileList = ciaFileRepository.findByCiKey(ciKey);
for(CiaFile file: ciaFileList){
if(deleteFileSeq.contains(file.getFileSeq())){
deleteStoredFile(new File(file.getSavePath(), file.getConvNm()));
ciaFileRepository.delete(file);
List<CiaFile> ciaFileList = ciaFileRepository.findByCiKey(ciKey);
for(CiaFile file: ciaFileList){
if(deleteFileSeq.contains(file.getFileSeq())){
deleteStoredFile(new File(file.getSavePath(), file.getConvNm()));
ciaFileRepository.delete(file);
}
}
}
private void saveCiaUploadFiles(Integer ciKey, List<MultipartFile> multipartFileList){
CiaFile lastFileInfo = ciaFileRepository.findTopByCiKeyOrderByFileSeqDesc(ciKey).orElse(null);
int fileSeq = lastFileInfo==null?1:(lastFileInfo.getFileSeq()+1);
for(MultipartFile file : multipartFileList){
String saveName = UUID.randomUUID().toString();
String path = locationPath+ciwPath;
saveFile(file, new File(path+File.separator+saveName));
String originalFilename = file.getOriginalFilename();
int extnIdx = originalFilename.lastIndexOf(".");
CiaFile fileInfo = new CiaFile();
fileInfo.setCiKey(ciKey);
fileInfo.setFileSeq(fileSeq++);
fileInfo.setOrigNm(originalFilename.substring(0, extnIdx));
fileInfo.setFileExtn(originalFilename.substring(extnIdx+1));
fileInfo.setConvNm(saveName);
fileInfo.setFileSize(calculationSize(file.getSize()));
fileInfo.setSavePath(path);
ciaFileRepository.save(fileInfo);
}
}
private void saveCiaUploadFiles(Integer ciKey, List<MultipartFile> multipartFileList){
CiaFile lastFileInfo = ciaFileRepository.findTopByCiKeyOrderByFileSeqDesc(ciKey).orElse(null);
int fileSeq = lastFileInfo==null?1:(lastFileInfo.getFileSeq()+1);
for(MultipartFile file : multipartFileList){
String saveName = UUID.randomUUID().toString();
String path = locationPath+ciwPath;
saveFile(file, new File(path+File.separator+saveName));
String originalFilename = file.getOriginalFilename();
int extnIdx = originalFilename.lastIndexOf(".");
CiaFile fileInfo = new CiaFile();
fileInfo.setCiKey(ciKey);
fileInfo.setFileSeq(fileSeq++);
fileInfo.setOrigNm(originalFilename.substring(0, extnIdx));
fileInfo.setFileExtn(originalFilename.substring(extnIdx+1));
fileInfo.setConvNm(saveName);
fileInfo.setFileSize(calculationSize(file.getSize()));
fileInfo.setSavePath(path);
ciaFileRepository.save(fileInfo);
}
}
@Transactional
public void saveSaftyDemand(CounterIntelligenceActivity cia) {
SaftyDemandInfo sdi = new SaftyDemandInfo();
sdi.setCiKey(cia.getCiKey());
sdi.setLocalInfo(cia.getLocalInfo());
sdi.setOutlookProblem(cia.getOutlookProblem());
saftyDemandInfoRepository.save(sdi);
public void saveSafetyDemand(CounterIntelligenceActivity cia) {
SafetyDemandInfo sdi = new SafetyDemandInfo();
sdi.setCiKey(cia.getCiKey());
sdi.setLocalInfo(cia.getLocalInfo());
sdi.setOutlookProblem(cia.getOutlookProblem());
safetyDemandInfoRepository.save(sdi);
}
public List<CounterIntelligenceActivity> selectCiaSaftyDemandList(CounterIntelligenceActivity cia) {
return ciMapper.selectCiaSaftyDemandList(cia);
public List<CounterIntelligenceActivity> selectCiaSafetyDemandList(CounterIntelligenceActivity cia) {
return ciMapper.selectCiaSafetyDemandList(cia);
}
public Integer selectCiaSaftyDemandListCnt(CounterIntelligenceActivity cia) {
return ciMapper.selectCiaSaftyDemandListCnt(cia);
public Integer selectCiaSafetyDemandListCnt(CounterIntelligenceActivity cia) {
return ciMapper.selectCiaSafetyDemandListCnt(cia);
}
public CounterIntelligenceActivity selectSaftyDemandInfo(CounterIntelligenceActivity cia) {
CounterIntelligenceActivity dbCia = counterIntelligenceActivityRepository.findById(cia.getCiKey()).orElse(null);
if(dbCia!=null){
dbCia.setFileList(ciaFileRepository.findByCiKey(cia.getCiKey()));
dbCia.setSaftyDemandInfo(saftyDemandInfoRepository.findById(cia.getCiKey()).orElse(null));
}
return dbCia;
}
@Transactional
public void saveManageCompany(CounterIntelligenceActivity cia) {
ManageCompanyInfo mci = new ManageCompanyInfo();
mci.setCiKey(cia.getCiKey());
mci.setMgtOrgan(cia.getMgtOrgan());
mci.setCompanyNm(cia.getCompanyNm());
mci.setCompanyLocation(cia.getCompanyLocation());
mci.setRelatedField(cia.getRelatedField());
mci.setDescription(cia.getDescription());
mci.setCellPhone(cia.getCellPhone());
mci.setDepartment(cia.getDepartment());
mci.setName(cia.getName());
manageCompanyInfoRepository.save(mci);
ManageCompanyInfo mci = new ManageCompanyInfo();
mci.setCiKey(cia.getCiKey());
mci.setMgtOrgan(cia.getMgtOrgan());
mci.setCompanyNm(cia.getCompanyNm());
mci.setCompanyLocation(cia.getCompanyLocation());
mci.setRelatedField(cia.getRelatedField());
mci.setDescription(cia.getDescription());
mci.setCellPhone(cia.getCellPhone());
mci.setDepartment(cia.getDepartment());
mci.setName(cia.getName());
manageCompanyInfoRepository.save(mci);
}
public List<CounterIntelligenceActivity> selectCiaManageCompanyList(CounterIntelligenceActivity cia) {
return ciMapper.selectCiaManageCompanyList(cia);
return ciMapper.selectCiaManageCompanyList(cia);
}
public Integer selectCiaManageCompanyListCnt(CounterIntelligenceActivity cia) {
return ciMapper.selectCiaManageCompanyListCnt(cia);
return ciMapper.selectCiaManageCompanyListCnt(cia);
}
public CounterIntelligenceActivity selectManageCompanyInfo(CounterIntelligenceActivity cia) {
CounterIntelligenceActivity dbCia = counterIntelligenceActivityRepository.findById(cia.getCiKey()).orElse(null);
if(dbCia!=null){
dbCia.setFileList(ciaFileRepository.findByCiKey(cia.getCiKey()));
dbCia.setManageCompanyInfo(manageCompanyInfoRepository.findById(cia.getCiKey()).orElse(null));
}
return dbCia;
}
@Transactional
public void saveForeigner(CounterIntelligenceActivity cia) {
ForeignerInfo fi = new ForeignerInfo();
fi.setCiKey(cia.getCiKey());
fi.setMgtOrgan(cia.getMgtOrgan());
fi.setManager(cia.getManager());
fi.setCommuLocation(cia.getCommuLocation());
fi.setCommuNational(cia.getCommuNational());
fi.setCommuAddress(cia.getCommuAddress());
fi.setSelectReason(cia.getSelectReason());
fi.setMonitoringInfo(cia.getMonitoringInfo());
fi.setFixDate(cia.getFixDate());
foreignerInfoRepository.save(fi);
ForeignerInfo fi = new ForeignerInfo();
fi.setCiKey(cia.getCiKey());
fi.setMgtOrgan(cia.getMgtOrgan());
fi.setManager(cia.getManager());
fi.setCommuLocation(cia.getCommuLocation());
fi.setCommuNational(cia.getCommuNational());
fi.setCommuAddress(cia.getCommuAddress());
fi.setSelectReason(cia.getSelectReason());
fi.setMonitoringInfo(cia.getMonitoringInfo());
fi.setFixDate(cia.getFixDate());
foreignerInfoRepository.save(fi);
}
public List<ForeignerInfo> selectCiaForeignerList(CounterIntelligenceActivity cia) {
return ciMapper.selectCiaForeignerList(cia);
return ciMapper.selectCiaForeignerList(cia);
}
public Integer selectCiaForeignerListCnt(CounterIntelligenceActivity cia) {
return ciMapper.selectCiaForeignerListCnt(cia);
return ciMapper.selectCiaForeignerListCnt(cia);
}
public CounterIntelligenceActivity selectForeignerInfo(CounterIntelligenceActivity cia) {
CounterIntelligenceActivity dbCia = counterIntelligenceActivityRepository.findById(cia.getCiKey()).orElse(null);
if(dbCia!=null){
dbCia.setFileList(ciaFileRepository.findByCiKey(cia.getCiKey()));
dbCia.setForeignerInfo(foreignerInfoRepository.findById(cia.getCiKey()).orElse(null));
}
return dbCia;
}
@Transactional
public void saveEdu(CounterIntelligenceActivity cia) {
EduInfo ei = new EduInfo();
ei.setCiKey(cia.getCiKey());
ei.setMgtOrgan(cia.getMgtOrgan());
ei.setEduType(cia.getEduType());
ei.setEduDate(cia.getEduDate());
ei.setPeopleCnt(cia.getPeopleCnt());
ei.setDescription(cia.getDescription());
eduInfoRepository.save(ei);
EduInfo ei = new EduInfo();
ei.setCiKey(cia.getCiKey());
ei.setMgtOrgan(cia.getMgtOrgan());
ei.setEduType(cia.getEduType());
ei.setEduDate(cia.getEduDate());
ei.setPeopleCnt(cia.getPeopleCnt());
ei.setDescription(cia.getDescription());
eduInfoRepository.save(ei);
}
public List<CounterIntelligenceActivity> selectCiaEduList(CounterIntelligenceActivity cia) {
return ciMapper.selectCiaEduList(cia);
return ciMapper.selectCiaEduList(cia);
}
public Integer selectCiaEduListCnt(CounterIntelligenceActivity cia) {
return ciMapper.selectCiaEduListCnt(cia);
return ciMapper.selectCiaEduListCnt(cia);
}
public CounterIntelligenceActivity selectEduInfo(CounterIntelligenceActivity cia) {
CounterIntelligenceActivity dbCia = counterIntelligenceActivityRepository.findById(cia.getCiKey()).orElse(null);
if(dbCia!=null){
dbCia.setFileList(ciaFileRepository.findByCiKey(cia.getCiKey()));
dbCia.setEduInfo(eduInfoRepository.findById(cia.getCiKey()).orElse(null));
}
return dbCia;
CounterIntelligenceActivity dbCia = counterIntelligenceActivityRepository.findById(cia.getCiKey()).orElse(null);
if(dbCia!=null){
dbCia.setFileList(ciaFileRepository.findByCiKey(cia.getCiKey()));
dbCia.setEduInfo(eduInfoRepository.findById(cia.getCiKey()).orElse(null));
}
return dbCia;
}
public CiaFile selectCiaForeignerFile(Integer ciKey,Integer fileSeq) {
return ciaFileRepository.findByCiKeyAndFileSeq(ciKey,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);
CounterIntelligenceActivity dbCia = counterIntelligenceActivityRepository.findById(cia.getCiKey()).orElse(null);
dbCia.setContentStatus(cia.getContentStatus());
counterIntelligenceActivityRepository.save(dbCia);
}
public CounterIntelligenceActivity selectCiaInfo(CounterIntelligenceActivity cia) {
switch (cia.getCiType()){
case "SDI":
if(cia.getCiKey() != null){
cia = counterIntelligenceActivityRepository.findById(cia.getCiKey()).orElse(new CounterIntelligenceActivity());
cia.setFileList(ciaFileRepository.findByCiKey(cia.getCiKey()));
cia.setSafetyDemandInfo(safetyDemandInfoRepository.findById(cia.getCiKey()).orElse(new SafetyDemandInfo()));
}else{
cia.setSafetyDemandInfo(new SafetyDemandInfo());
}
break;
case "MCI":
if(cia.getCiKey() != null){
cia = counterIntelligenceActivityRepository.findById(cia.getCiKey()).orElse(new CounterIntelligenceActivity());
cia.setFileList(ciaFileRepository.findByCiKey(cia.getCiKey()));
cia.setManageCompanyInfo(manageCompanyInfoRepository.findById(cia.getCiKey()).orElse(new ManageCompanyInfo()));
}else{
cia.setManageCompanyInfo(new ManageCompanyInfo());
}
break;
case "FI":
if(cia.getCiKey() != null){
cia = counterIntelligenceActivityRepository.findById(cia.getCiKey()).orElse(new CounterIntelligenceActivity());
cia.setFileList(ciaFileRepository.findByCiKey(cia.getCiKey()));
cia.setForeignerInfo(foreignerInfoRepository.findById(cia.getCiKey()).orElse(new ForeignerInfo()));
}else{
cia.setForeignerInfo(new ForeignerInfo());
}
break;
case "EI":
if(cia.getCiKey() != null){
cia = counterIntelligenceActivityRepository.findById(cia.getCiKey()).orElse(new CounterIntelligenceActivity());
cia.setFileList(ciaFileRepository.findByCiKey(cia.getCiKey()));
cia.setEduInfo(eduInfoRepository.findById(cia.getCiKey()).orElse(new EduInfo()));
}else{
cia.setEduInfo(new EduInfo());
}
break;
}
return cia;
}
}

View File

@ -26,7 +26,7 @@ file.dir.affair.result=/affairResult
file.dir.editor=/editor
file.dir.sri=/sri
file.dir.ciw=/ciw
file.dir.cia.safty=/cia/safty
file.dir.cia.safety=/cia/safety
file.dir.cia.company=/cia/company
file.dir.cia.foreigner=/cia/foreigner
file.dir.cia.edu=/cia/edu

View File

@ -37,7 +37,7 @@ file.dir.affair.result=/affairResult
file.dir.editor=/editor
file.dir.sri=/sri
file.dir.ciw=/ciw
file.dir.cia.safty=/cia/safty
file.dir.cia.safety=/cia/safety
file.dir.cia.company=/cia/company
file.dir.cia.foreigner=/cia/foreigner
file.dir.cia.edu=/cia/edu

View File

@ -37,7 +37,7 @@ file.dir.affair.result=/affairResult
file.dir.editor=/editor
file.dir.sri=/sri
file.dir.ciw=/ciw
file.dir.cia.safty=/cia/safty
file.dir.cia.safety=/cia/safety
file.dir.cia.company=/cia/company
file.dir.cia.foreigner=/cia/foreigner
file.dir.cia.edu=/cia/edu

View File

@ -33,7 +33,7 @@ file.dir.affair.result=/affairResult
file.dir.editor=/editor
file.dir.sri=/sri
file.dir.ciw=/ciw
file.dir.cia.safty=/cia/safty
file.dir.cia.safety=/cia/safety
file.dir.cia.company=/cia/company
file.dir.cia.foreigner=/cia/foreigner
file.dir.cia.edu=/cia/edu

View File

@ -33,7 +33,7 @@ file.dir.affair.result=/affairResult
file.dir.editor=/editor
file.dir.sri=/sri
file.dir.ciw=/ciw
file.dir.cia.safty=/cia/safty
file.dir.cia.safety=/cia/safety
file.dir.cia.company=/cia/company
file.dir.cia.foreigner=/cia/foreigner
file.dir.cia.edu=/cia/edu

View File

@ -148,7 +148,7 @@
</select>
<select id="selectCiaSaftyDemandList" parameterType="CounterIntelligenceActivity" resultType="CounterIntelligenceActivity">
<select id="selectCiaSafetyDemandList" parameterType="CounterIntelligenceActivity" resultType="CounterIntelligenceActivity">
select cia.ci_key,
(select item_value from code_mgt where item_cd = cia.content_status) as content_status,
cia.ci_type,
@ -160,7 +160,7 @@
cia.wrt_user_nm,
cia.wrt_dt
from counter_intelligence_activity cia,
safty_demand_info sdi
safety_demand_info sdi
where cia.ci_key = sdi.ci_key
and cia.content_status != 'DST008'
and ((cia.wrt_user_seq = #{wrtUserSeq} and cia.content_status = 'DST001') or cia.content_status = 'DST007')
@ -184,7 +184,7 @@
LIMIT #{rowCnt} OFFSET #{firstIndex}
</select>
<select id="selectCiaSaftyDemandListCnt" parameterType="CounterIntelligenceActivity" resultType="Integer">
<select id="selectCiaSafetyDemandListCnt" parameterType="CounterIntelligenceActivity" resultType="Integer">
select count(*)
from(
select cia.ci_key,
@ -198,7 +198,7 @@
cia.wrt_user_nm,
cia.wrt_dt
from counter_intelligence_activity cia,
safty_demand_info sdi
safety_demand_info sdi
where cia.ci_key = sdi.ci_key
and cia.content_status != 'DST008'
and ((cia.wrt_user_seq = #{wrtUserSeq} and cia.content_status = 'DST001') or cia.content_status = 'DST007')

View File

@ -12,8 +12,8 @@ $(document).on('click', '#addBtn', function (){
function getCiaEduEditModal(ciKey){
$.ajax({
url: '/counterIntelligence/ciaEduEditModal',
data: {ciKey: ciKey},
url: '/counterIntelligence/ciaEditModal',
data: {ciKey: ciKey, ciType: "EI"},
type: 'GET',
dataType:"html",
success: function(html){
@ -78,8 +78,8 @@ $(document).on('click', '.eiTr', function (){
function getCiaEduViewModal(ciKey){
$.ajax({
url: '/counterIntelligence/ciaEduViewModal',
data: {ciKey: ciKey},
url: '/counterIntelligence/ciaViewModal',
data: {ciKey: ciKey, ciType: "EI"},
type: 'GET',
dataType:"html",
success: function(html){

View File

@ -12,8 +12,8 @@ $(document).on('click', '#addBtn', function (){
function getCiaForeignerEditModal(ciKey){
$.ajax({
url: '/counterIntelligence/ciaForeignerEditModal',
data: {ciKey: ciKey},
url: '/counterIntelligence/ciaEditModal',
data: {ciKey: ciKey, ciType: "FI"},
type: 'GET',
dataType:"html",
success: function(html){
@ -81,8 +81,8 @@ $(document).on('click', '.fiTr', function (){
function getCiaForeignerViewModal(ciKey){
$.ajax({
url: '/counterIntelligence/ciaForeignerViewModal',
data: {ciKey: ciKey},
url: '/counterIntelligence/ciaViewModal',
data: {ciKey: ciKey, ciType: "FI"},
type: 'GET',
dataType:"html",
success: function(html){

View File

@ -12,8 +12,8 @@ $(document).on('click', '#addBtn', function (){
function getCiaManageCompanyEditModal(ciKey){
$.ajax({
url: '/counterIntelligence/ciaManageCompanyEditModal',
data: {ciKey: ciKey},
url: '/counterIntelligence/ciaEditModal',
data: {ciKey: ciKey, ciType: "MCI"},
type: 'GET',
dataType:"html",
success: function(html){
@ -73,8 +73,8 @@ $(document).on('click', '.mciTr', function (){
function getCiaManageCompanyViewModal(ciKey){
$.ajax({
url: '/counterIntelligence/ciaManageCompanyViewModal',
data: {ciKey: ciKey},
url: '/counterIntelligence/ciaViewModal',
data: {ciKey: ciKey, ciType: "MCI"},
type: 'GET',
dataType:"html",
success: function(html){

View File

@ -7,19 +7,19 @@ $(function(){
})
$(document).on('click', '#addBtn', function (){
getCiaSaftyDemandEditModal(null);
getCiaSafetyDemandEditModal(null);
})
function getCiaSaftyDemandEditModal(ciKey){
function getCiaSafetyDemandEditModal(ciKey){
$.ajax({
url: '/counterIntelligence/ciaSaftyDemandEditModal',
data: {ciKey: ciKey},
url: '/counterIntelligence/ciaEditModal',
data: {ciKey: ciKey, ciType: "SDI"},
type: 'GET',
dataType:"html",
success: function(html){
$("#ciaSaftyDemandEditModalContent").empty().append(html)
$("#ciaSafetyDemandEditModalContent").empty().append(html)
setUploadDiv();
$("#ciaSaftyDemandEditModal").modal('show');
$("#ciaSafetyDemandEditModal").modal('show');
},
error:function(e){
ajaxErrorAction(e);
@ -29,18 +29,18 @@ function getCiaSaftyDemandEditModal(ciKey){
$(document).on('click', '#saveBtn', function (){
if(confirm("저장하시겠습니까?")){
save('DST007');
saveCia('DST007');
}
})
$(document).on('click', '#saveTempBtn', function (){
if(confirm("임시저장 하시겠습니까?")){
save('DST001');
saveCia('DST001');
}
})
function save(contentStatus){
const formData = new FormData($("#ciaSaftyDemandEditForm")[0]);
function saveCia(contentStatus){
const formData = new FormData($("#ciaSafetyDemandEditForm")[0]);
for(const file of files) {
if(!file.isDelete)
formData.append('uploadFiles', file, file.name);
@ -90,18 +90,18 @@ $(document).on('click', '#deleteBtn', function (){
})
$(document).on('click', '.sdiTr', function (){
getCiaSaftyDemandViewModal($(this).find(".ciKey").val());
getCiaSafetyDemandViewModal($(this).find(".ciKey").val());
})
function getCiaSaftyDemandViewModal(ciKey){
function getCiaSafetyDemandViewModal(ciKey){
$.ajax({
url: '/counterIntelligence/ciaSaftyDemandViewModal',
data: {ciKey: ciKey},
url: '/counterIntelligence/ciaViewModal',
data: {ciKey: ciKey, ciType: "SDI"},
type: 'GET',
dataType:"html",
success: function(html){
$("#ciaSaftyDemandViewModalBody").empty().append(html)
$("#ciaSaftyDemandViewModal").modal('show');
$("#ciaSafetyDemandViewModalBody").empty().append(html)
$("#ciaSafetyDemandViewModal").modal('show');
},
error:function(e){
ajaxErrorAction(e);
@ -110,8 +110,8 @@ function getCiaSaftyDemandViewModal(ciKey){
}
$(document).on('click', '#editBtn', function (){
$("#ciaSaftyDemandViewModal").modal('hide');
getCiaSaftyDemandEditModal($(this).attr("data-cikey"));
$("#ciaSafetyDemandViewModal").modal('hide');
getCiaSafetyDemandEditModal($(this).attr("data-cikey"));
})
$(document).on('click', '#excelDown', function (){

View File

@ -5,7 +5,7 @@
<button type="button" class="btn-close f-invert" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body" id="ivsgtEditBody">
<form action="#" method="post" id="ciaSaftyDemandEditForm">
<form action="#" method="post" id="ciaSafetyDemandEditForm">
<input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/>
<input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/>
<input type="hidden" name="ciType" value="SDI">
@ -29,13 +29,13 @@
<div class="row mb-1">
<label class="col-sm-1 col-form-label col-form-label-sm text-center">지역특성</label>
<div class="col-sm-11">
<textarea class="form-control form-control-sm" rows="5" cols="30" name="localInfo" th:utext="${cia.saftyDemandInfo.localInfo}"></textarea>
<textarea class="form-control form-control-sm" rows="5" cols="30" name="localInfo" th:utext="${cia.safetyDemandInfo.localInfo}"></textarea>
</div>
</div>
<div class="row mb-1">
<label class="col-sm-1 col-form-label col-form-label-sm text-center">예상<br>문제점</label>
<div class="col-sm-11">
<textarea class="form-control form-control-sm" rows="5" cols="30" name="outlookProblem" th:utext="${cia.saftyDemandInfo.outlookProblem}"></textarea>
<textarea class="form-control form-control-sm" rows="5" cols="30" name="outlookProblem" th:utext="${cia.safetyDemandInfo.outlookProblem}"></textarea>
</div>
</div>
<div class="row mb-1">

View File

@ -3,7 +3,7 @@
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
layout:decorate="~{layout/layout}">
<th:block layout:fragment="script">
<script type="text/javascript" th:src="@{/js/counterIntelligence/ciaSaftyDemand.js}"></script>
<script type="text/javascript" th:src="@{/js/counterIntelligence/ciaSafetyDemand.js}"></script>
</th:block>
<div layout:fragment="content">
<main>
@ -23,7 +23,7 @@
<div class="col-12 card bg-light text-center">
<div class="card-body">
<div class="tab-content bg-white border border-top-0 p-2">
<form method="get" th:action="@{/counterIntelligence/ciaSaftyDemandList}">
<form method="get" th:action="@{/counterIntelligence/ciaSafetyDemandList}">
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
<div class="row justify-content-between py-1">
<div class="col-auto">
@ -142,16 +142,16 @@
</div>
</main>
<div class="modal fade" id="ciaSaftyDemandEditModal" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1" aria-labelledby="ciWorkModalLabel" aria-hidden="true">
<div class="modal fade" id="ciaSafetyDemandEditModal" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1" aria-labelledby="ciWorkModalLabel" aria-hidden="true">
<div class="modal-dialog modal-lg modal-dialog-scrollable">
<div class="modal-content" id="ciaSaftyDemandEditModalContent">
<div class="modal-content" id="ciaSafetyDemandEditModalContent">
</div>
</div>
</div>
<div class="modal fade" id="ciaSaftyDemandViewModal" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1" aria-labelledby="ciWorkModalLabel" aria-hidden="true">
<div class="modal fade" id="ciaSafetyDemandViewModal" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1" aria-labelledby="ciWorkModalLabel" aria-hidden="true">
<div class="modal-dialog modal-lg modal-dialog-scrollable">
<div class="modal-content" id="ciaSaftyDemandViewModalBody">
<div class="modal-content" id="ciaSafetyDemandViewModalBody">
</div>
</div>

View File

@ -1,12 +1,12 @@
<!DOCTYPE html>
<html lang="ko" xmlns:th="http://www.thymeleaf.org">
<div class="modal-header bg-dark">
<h5 class="modal-title text-white" id="ciaSaftyDemandViewModalLabel">치안수요 열람</h5>
<h5 class="modal-title text-white" id="ciaSafetyDemandViewModalLabel">치안수요 열람</h5>
<button type="button" class="btn-close f-invert" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/>
<input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/>
<div class="modal-body" id="ciaSaftyDemandViewBody">
<div class="modal-body" id="ciaSafetyDemandViewBody">
<ul class="nav nav-tabs" id="userTab" role="tablist">
<li class="nav-item" role="presentation">
<button class="nav-link active" id="boardTab" data-bs-toggle="tab" data-bs-target="#boardTabPanel" type="button" role="tab" aria-controls="boardTabPanel" aria-selected="true">본문</button>
@ -22,20 +22,20 @@
<label class="col-sm-3 col-form-label col-form-label-sm text-start" th:text="${#temporals.format(cia.wrtDt, 'yyyy-MM-dd HH:mm')}"></label>
<label class="col-sm-2 col-form-label col-form-label-sm text-center fw-bold">작성자</label>
<label class="col-sm-5 col-form-label col-form-label-sm text-start">
<th:block th:each="commonCode:${session.commonCode.get('JT')}">
<option th:value="${commonCode.itemCd}" th:if="${commonCode.itemCd eq cia.wrtUserGrd}" th:text="|${commonCode.itemValue} ${cia.wrtUserNm}|"></option>
<th:block th:each="code:${session.commonCode.get('JT')}">
<option th:value="${code.itemCd}" th:if="${code.itemCd eq cia.wrtUserGrd}" th:text="|${code.itemValue} ${cia.wrtUserNm}|"></option>
</th:block>
</label>
</div>
<hr class="my-1">
<div class="row mb-1">
<label class="col-sm-2 col-form-label col-form-label-sm text-center fw-bold">지역특성</label>
<div class="col-sm-10 form-control-sm" th:utext="${#strings.replace(cia.saftyDemandInfo.localInfo, lineSeparator, '<br>')}"></div>
<div class="col-sm-10 form-control-sm" th:utext="${#strings.replace(cia.safetyDemandInfo.localInfo, lineSeparator, '<br>')}"></div>
</div>
<hr class="my-1">
<div class="row mb-1">
<label class="col-sm-2 col-form-label col-form-label-sm text-center fw-bold">예상문제점</label>
<div class="col-sm-10 form-control-sm" th:utext="${#strings.replace(cia.saftyDemandInfo.outlookProblem, lineSeparator, '<br>')}"></div>
<div class="col-sm-10 form-control-sm" th:utext="${#strings.replace(cia.safetyDemandInfo.outlookProblem, lineSeparator, '<br>')}"></div>
</div>
</div>
<div class="tab-pane fade p-2" id="fileTabPanel" role="tabpanel" tabindex="0">