Merge branch 'master' into master_tolag3

This commit is contained in:
leejunho 2025-12-05 16:30:49 +09:00
commit fd6e048d03
9 changed files with 120 additions and 92 deletions

View File

@ -516,7 +516,8 @@ public class EgovLoginController {
//step4.2FACTOR인가?
//2FACTOR 설정된 경우는 인증번호를 발송한다.
if ("Y".equals(resultVO.getOrgnztId())) {
sspnIdtmtService.sendCertSMS(resultVO.getMembCelnum(), resultVO.getUniqId());
sspnIdtmtService.sendCertSMS(egovCryptoUtil.decrypt(egovCryptoUtil.decrypt(resultVO.getMembCelnum()).replaceAll("-", "")), resultVO.getUniqId());
}
modelAndView.addObject("result", "success");

View File

@ -6,7 +6,6 @@ import java.util.Map;
import javax.annotation.Resource;
import kcc.ve.cmm.sendAt.SendService;
import org.apache.commons.lang.RandomStringUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
@ -18,6 +17,7 @@ import kcc.com.utl.user.service.CheckLoginUtil;
import kcc.let.utl.fcc.service.EgovCryptoUtil;
import kcc.ve.aplct.sspnIdtmt.service.SspnIdtmtService;
import kcc.ve.cmm.VeSendSMS;
import kcc.ve.cmm.sendAt.SendService;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctSndHstryService;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctVO;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.impl.VEEduAplctDAO;
@ -418,15 +418,15 @@ public class SspnIdtmtServiceImpl implements SspnIdtmtService {
private String _sendSMSNLog(String p_code, String p_title, String p_cn, String p_clphone, String p_uniqId) throws Exception{
//인증번호 생성
//String code = RandomStringUtils.randomNumeric(6);
VEEduAplctVO vEEduAplctVO = new VEEduAplctVO();
VeSendSMS sendSMS = new VeSendSMS();
//p_cndtnTrgtInfoMngVO = egovCryptoUtil.decryptCndtnTrgtMngVOInfo(p_cndtnTrgtInfoMngVO); //핸드폰번호 복호화
/*
vEEduAplctVO.setEduAplctOrd("교육 대상자 인증");
vEEduAplctVO.setSndCn("안녕하세요. 한국지식재산보호원입니다.\n인증번호는 " + code + " 입니다.");
vEEduAplctVO.setClphone(p_cndtnTrgtInfoMngVO.getClphone());
*/
//문자 발송 부분
Map<String, String> chihwan = new HashMap<>();
chihwan.put("certNo", p_code);
sendService.sendAt(p_clphone, "TEMPLATE_CERT_NO", chihwan);
//문자 발송 로그 부분
VEEduAplctVO vEEduAplctVO = new VEEduAplctVO();
VeSendSMS sendSMS = new VeSendSMS();
vEEduAplctVO.setEduAplctOrd(p_title);
vEEduAplctVO.setSndCn(p_cn);
vEEduAplctVO.setClphone(p_clphone);
@ -434,7 +434,9 @@ public class SspnIdtmtServiceImpl implements SspnIdtmtService {
vEEduAplctVO.setSndFlag("B");
Map<String, Object> resultMap = sendSMS.VeSendSMS(vEEduAplctVO.getClphone(), vEEduAplctVO.getSndCn(), vEEduAplctVO.getSndFlag());
//문자 발송 성공
if("1".equals(resultMap.get("result_code"))){
//발송 로그
//LoginVO loginVO = checkLoginUtil.getAuthLoginVO();

View File

@ -726,85 +726,96 @@ public class CmdTrgtMngController {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
//로그인 처리====================================
//로그인 정보 가져오기
String s_oprtnLoginCheckNInfo = checkLoginUtil.oprtnCheckNInfo(model);
if (!"".equals(s_oprtnLoginCheckNInfo)) {
modelAndView.addObject("result", "loginFail");
return modelAndView;
}
//로그인 처리====================================
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기
try {
//로그인 처리====================================
//로그인 정보 가져오기
String s_oprtnLoginCheckNInfo = checkLoginUtil.oprtnCheckNInfo(model);
if (!"".equals(s_oprtnLoginCheckNInfo)) {
modelAndView.addObject("result", "loginFail");
return modelAndView;
}
//로그인 처리====================================
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기
//step2.파일 처리====================================
//파일 정상 처리 여부와 첨부 파일 정보
//String atchFileId = this.takeFile(multiRequest, modelAndView, bmVO);
//파일 제한 수량 가져오기, 없으면 기본값 사용
int i_file_limit = checkFileUtil.getLimitCount(request); // file count
int i_limit_size = checkFileUtil.getLimitSize(request); // file MB
String s_file_exts = checkFileUtil.getS_exts(); // file exts
//step2.파일 처리====================================
//파일 정상 처리 여부와 첨부 파일 정보
//String atchFileId = this.takeFile(multiRequest, modelAndView, bmVO);
//파일 제한 수량 가져오기, 없으면 기본값 사용
int i_file_limit = checkFileUtil.getLimitCount(request); // file count
int i_limit_size = checkFileUtil.getLimitSize(request); // file MB
String s_file_exts = checkFileUtil.getS_exts(); // file exts
String s_scholSealAtchFileId = checkFileUtil.fileValCheckNdbInsert(
multiRequest, modelAndView
, "APLCT_" //file_name_prefix
, s_file_exts
, i_limit_size
, i_file_limit
); //EXT, MB size and ea
System.out.println("s_scholSealAtchFileId");
System.out.println(s_scholSealAtchFileId);
System.out.println(s_scholSealAtchFileId);
if ("ERROR".equals(s_scholSealAtchFileId)) return modelAndView;
// 사건번호
// 형식 : - 예시로 A-서울중앙-100-23-1 경우
// A (성인/미성년 구분), 서울중앙, 100, 23, 1
// 성인 A / 미성년 Y, 검찰청명, 검찰청 고유번호, 연도, 접수번호
try {
if(StringUtils.isEmpty(cndtnTrgtInfoMngVO.getdBirth()) ) {
cndtnTrgtInfoMngVO.setdBirth(cndtnTrgtInfoMngVO.getDBirth());
}
System.out.println(cndtnTrgtInfoMngVO.getdBirth());
cndtnTrgtInfoMngVO.setReqNmbr(this.getReqNmbr(cndtnTrgtInfoMngVO));
cndtnTrgtInfoMngVO.setCmdTrgtInfoOrd(trgtOrdService.getNextStringId());
cndtnTrgtInfoMngVO.setAtchFileId(s_scholSealAtchFileId); //학교장직인 첨부파일
cndtnTrgtInfoMngVO.setFrstRegisterId(loginVO.getUniqId()); //esntl_id
String s_scholSealAtchFileId = checkFileUtil.fileValCheckNdbInsert(
multiRequest, modelAndView
, "APLCT_" //file_name_prefix
, s_file_exts
, i_limit_size
, i_file_limit
); //EXT, MB size and ea
if ("ERROR".equals(s_scholSealAtchFileId)) return modelAndView;
//암호화
cndtnTrgtInfoMngVO = egovCryptoUtil.encryptCmdTrgtMngVOInfo(cndtnTrgtInfoMngVO);
cmdTrgtInfoMngService.insert(cndtnTrgtInfoMngVO);
// 병합을 하기위한 key
modelAndView.addObject("cmdTrgtInfoOrd", cndtnTrgtInfoMngVO.getCmdTrgtInfoOrd());
modelAndView.addObject("result", "success");
//첨부파일 이름 변경하기
List<FileVO> result = new ArrayList<>();
FileVO fileCheck = new FileVO();
fileCheck.setAtchFileId(s_scholSealAtchFileId);
result = fileService.selectFileInfs(fileCheck);
for(int i=0; i < result.size(); i++) {
cndtnTrgtInfoMngVO = egovCryptoUtil.decryptCmdTrgtMngVOInfo(cndtnTrgtInfoMngVO);
String orignlFileNm = cndtnTrgtInfoMngVO.getTrgtNm() + "_"+cndtnTrgtInfoMngVO.getDBirth()+"_"+cndtnTrgtInfoMngVO.getCmptntAthrtNm();
orignlFileNm = orignlFileNm+"_"+(i+1);
orignlFileNm = orignlFileNm +"."+ result.get(i).getFileExtsn();
result.get(i).setOrignlFileNm(orignlFileNm);
fileService.updateFileName(result.get(i));
}
}catch(Exception ex) {
ex.printStackTrace();
modelAndView.addObject("result", "fail");
}
}catch(Exception ex) {
ex.printStackTrace();
}
// 사건번호
// 형식 : - 예시로 A-서울중앙-100-23-1 경우
// A (성인/미성년 구분), 서울중앙, 100, 23, 1
// 성인 A / 미성년 Y, 검찰청명, 검찰청 고유번호, 연도, 접수번호
try {
if(StringUtils.isEmpty(cndtnTrgtInfoMngVO.getdBirth()) ) {
cndtnTrgtInfoMngVO.setdBirth(cndtnTrgtInfoMngVO.getDBirth());
}
System.out.println(cndtnTrgtInfoMngVO.getdBirth());
cndtnTrgtInfoMngVO.setReqNmbr(this.getReqNmbr(cndtnTrgtInfoMngVO));
cndtnTrgtInfoMngVO.setCmdTrgtInfoOrd(trgtOrdService.getNextStringId());
cndtnTrgtInfoMngVO.setAtchFileId(s_scholSealAtchFileId); //학교장직인 첨부파일
cndtnTrgtInfoMngVO.setFrstRegisterId(loginVO.getUniqId()); //esntl_id
//암호화
cndtnTrgtInfoMngVO = egovCryptoUtil.encryptCmdTrgtMngVOInfo(cndtnTrgtInfoMngVO);
cmdTrgtInfoMngService.insert(cndtnTrgtInfoMngVO);
// 병합을 하기위한 key
modelAndView.addObject("cmdTrgtInfoOrd", cndtnTrgtInfoMngVO.getCmdTrgtInfoOrd());
modelAndView.addObject("result", "success");
//첨부파일 이름 변경하기
List<FileVO> result = new ArrayList<>();
FileVO fileCheck = new FileVO();
fileCheck.setAtchFileId(s_scholSealAtchFileId);
result = fileService.selectFileInfs(fileCheck);
for(int i=0; i < result.size(); i++) {
cndtnTrgtInfoMngVO = egovCryptoUtil.decryptCmdTrgtMngVOInfo(cndtnTrgtInfoMngVO);
String orignlFileNm = cndtnTrgtInfoMngVO.getTrgtNm() + "_"+cndtnTrgtInfoMngVO.getDBirth()+"_"+cndtnTrgtInfoMngVO.getCmptntAthrtNm();
orignlFileNm = orignlFileNm+"_"+(i+1);
orignlFileNm = orignlFileNm +"."+ result.get(i).getFileExtsn();
result.get(i).setOrignlFileNm(orignlFileNm);
fileService.updateFileName(result.get(i));
}
}catch(Exception ex) {
ex.printStackTrace();
modelAndView.addObject("result", "fail");
}
return modelAndView;

View File

@ -122,6 +122,7 @@
<input type="file" id="file_temp" name="file_temp" class="uploadFile" style="display:none"/>
<button type="button" id="filebutton" class="btn_type06">파일 첨부하기</button>
</div>
<a href="https://www.koipa.re.kr/ipedu/cmm/fms/FileDown.do?atchFileId=FILE_000000000001170&fileSn=0">[샘플파일]</a>
<p class="cf_text2" style="padding-left:30px;">첨부파일 가능 용량은 20MB입니다. </p><!-- <p style="color:red;font-weight:500">업로드 순서는 1.신청서 2.안내문 입니다.</p> -->
</div>
<div class="file_wrap file_upload_box no_img_box">

View File

@ -373,7 +373,7 @@
</td>
<th scope="row">의뢰번호</th>
<td>
<input type="text" name="reqNmbr" value="<c:out value="${info.reqNmbr }" />" readonly/>
<input type="text" name="reqNmbr" value="<c:out value="${info.reqNmbr }" />" />
</td>

View File

@ -419,6 +419,14 @@
</div>
</div>
</td>
<th scope="row">의뢰번호</th>
<td>
<input type="text" name="reqNmbr" value="" />
</td>
</tr>
@ -595,8 +603,7 @@
<!-- 교육대기 -->
<!-- <input type="hidden" name="eduStateCd" id="eduStateCd" value="10"/> -->
<ve:select codeId="VEA003" name="eduStateCd" id="eduStateCd" css="class='sel_type1'"
selectedText="" defaultValue=""
defaultText='선택'
selectedText="미이수"
/>
</td>
</tr>

View File

@ -121,6 +121,7 @@
<input type="file" id="file_temp" name="file_temp" class="uploadFile" style="display:none"/>
<button type="button" id="filebutton" class="btn_type06">파일 첨부하기</button>
</div>
<a href="https://www.koipa.re.kr/ipedu/cmm/fms/FileDown.do?atchFileId=FILE_000000000001170&fileSn=0">[샘플파일]</a>
<p class="cf_text2" style="padding-left:30px;">첨부파일 가능 용량은 20MB입니다. </p><!-- <p style="color:red;font-weight:500">업로드 순서는 1.신청서 2.안내문 입니다.</p> -->
</div>
<div class="file_wrap file_upload_box no_img_box">

View File

@ -374,7 +374,7 @@
</td>
<th scope="row">의뢰번호</th>
<td>
<input type="text" name="reqNmbr" value="<c:out value="${info.reqNmbr }" />" readonly/>
<input type="text" name="reqNmbr" value="<c:out value="${info.reqNmbr }" />" />
</td>

View File

@ -419,6 +419,12 @@
</div>
</div>
</td>
<th scope="row">의뢰번호</th>
<td>
<input type="text" name="reqNmbr" value="" />
</td>
</tr>
@ -595,8 +601,7 @@
<!-- 교육대기 -->
<!-- <input type="hidden" name="eduStateCd" id="eduStateCd" value="10"/> -->
<ve:select codeId="VEA003" name="eduStateCd" id="eduStateCd" css="class='sel_type1'"
selectedText="" defaultValue=""
defaultText='선택'
selectedText="미이수"
/>
</td>
</tr>