2025-10-16 15:13 기소유예 사용자 신청시 기존 과정 신청 여부 및 완료 여부 체크 수정

This commit is contained in:
myname 2025-10-16 15:14:13 +09:00
parent e2866776d3
commit b6e2bba2ad
6 changed files with 128 additions and 34 deletions

View File

@ -141,7 +141,7 @@ public class SspnIdtmtServiceImpl implements SspnIdtmtService {
result="";
//
// // step0.해당 계정으로 신청한 정보가 있는지 확인 하고, 있다면 동일한 정보로 신청했는지 확인 할것.
CndtnTrgtMngVO cndtnTrgtMngVO = cndtnTrgtInfoMngDAO.checkSspnIdtmtNewStep0(cndtnTrgtInfoMngVO);
//CndtnTrgtMngVO cndtnTrgtMngVO = cndtnTrgtInfoMngDAO.checkSspnIdtmtNewStep0(cndtnTrgtInfoMngVO);
/*
if ("F".equals(cndtnTrgtMngVO.getResultCd())) { //해당 계정으로 신청한 정보중에 다른 개인정보(이름, 생년월일, 성별) 사용해서 신청한 내용이 있다.
@ -157,27 +157,65 @@ public class SspnIdtmtServiceImpl implements SspnIdtmtService {
*/
// step1.신청 가능한 대상이 있는지 찾는다.
// step1.신청 가능한 대상이 있는지 찾는다.-대상자 존재 여부만 확인
List<CndtnTrgtMngVO> cndtnTrgtMngVOList = cndtnTrgtInfoMngDAO.checkSspnIdtmtStep1(cndtnTrgtInfoMngVO);
System.out.println(cndtnTrgtMngVOList);
System.out.println(cndtnTrgtMngVOList.size());
if (cndtnTrgtMngVOList==null || cndtnTrgtMngVOList.size()<=0) { //대상자가 없음
result = "fail";
msg = "대상자 정보와 입력하신 정보가 일치하지 않습니다.\n담당자에게 문의 바랍니다.\n문의: 055-792-0223";
next = "Y"; //?
//step2.대상이 없으면 기존 이력이 있는지 확인
cndtnTrgtMngVOList = cndtnTrgtInfoMngDAO.checkSspnIdtmtStep2(cndtnTrgtInfoMngVO);
}else { //대상자 있음
id = cndtnTrgtMngVOList.get(0).getSspnIdtmtTrgtOrd();
if (cndtnTrgtMngVOList==null || cndtnTrgtMngVOList.size()<=0) { //step3.기존 이력이 없으면 관리자에게 문의 하도록 한다.
result = "fail";
msg = "대상자 정보와 입력하신 정보가 일치하지 않습니다.\n담당자에게 문의 바랍니다.\n문의: 055-792-0223";
//step2.대상이 완료 상태인지 확인
cndtnTrgtMngVOList = cndtnTrgtInfoMngDAO.checkSspnIdtmtStep2(cndtnTrgtInfoMngVO);
int i_cnt = 0;
try {
i_cnt = cndtnTrgtMngVOList.size();
}catch(Exception ex) {
ex.printStackTrace();
}
if (i_cnt>0) { //완료한 상태이다.
result = "fail";
msg = "의뢰 상태가 완료로 과정대상자가 아닙니다. 관리자에게 문의 바랍니다.";
next = "Y"; //?
}else { //미완료 상태이다. //신청한 과정이 있는지 확인 필요.
cndtnTrgtMngVOList = cndtnTrgtInfoMngDAO.checkSspnIdtmtStep3(cndtnTrgtInfoMngVO);
}else if (cndtnTrgtMngVOList.size()>0) {
//기존 이력의 사유를 사용자에게 전달한다.
result = "fail";
msg = "기존 이력을 전달한다.------";
i_cnt = 0;
try {
i_cnt = cndtnTrgtMngVOList.size();
}catch(Exception ex) {
ex.printStackTrace();
}
if (i_cnt>0) {// 신청한 과정이 있다.
msg = "이미 신청한 교육이 있습니다.";
next = ""; //?
}else {//신청한 과정이 없다.
result = "success";
msg = "";
//id = cndtnTrgtMngVOList.get(0).getSspnIdtmtTrgtOrd();
//id = "";
next = "Y";
smsYn = "Y";
//next = Integer.toString(cndtnTrgtMngVOList.size()); //대상자
}
}
/*
if (cndtnTrgtMngVOList==null || cndtnTrgtMngVOList.size()<=0) { //step3.기존 이력이 없으면 관리자에게 문의 하도록 한다.
if ("20".equals(cndtnTrgtMngVOList.get(0).getEduStateCd())) {
msg = "이미 이수한 이력이 있습니다. 관리자에게 문의 바랍니다.";
next = "Y"; //?
@ -198,9 +236,17 @@ public class SspnIdtmtServiceImpl implements SspnIdtmtService {
msg = "교육취소 이력이 있습니다. 관리자에게 문의 바랍니다.";
next = "Y"; //?
}
}else if (cndtnTrgtMngVOList.size()>0) {
//완료한 상태이다.
result = "fail";
msg = "의뢰 상태가 완료로 과정대상자가 아닙니다. 관리자에게 문의 바랍니다.";
next = "Y"; //?
}
*/
/*
}else if (cndtnTrgtMngVOList.size()==1) { //성공 신청 진행
result = "success";
msg = "";
@ -219,11 +265,12 @@ public class SspnIdtmtServiceImpl implements SspnIdtmtService {
modelAndView.addObject("cndtnTrgtMngVOList", cndtnTrgtMngVOList);
//cndtnTrgtMngVOList.get(0).getreg
//next = Integer.toString(cndtnTrgtMngVOList.size()); //대상자
//next = Integer.toString(cndtnTrgtMngVOList.size()); //대상자
*/
}
//핸드폰으로 인증번호 발송
//핸드폰으로 인증번호 발송 chkYn-본인인증 여부 Y-본인인증 완료된 경우
if ("Y".equals(smsYn) && !"Y".equals(cndtnTrgtInfoMngVO.getChkYn())) {
//인증번호 생성
String code = RandomStringUtils.randomNumeric(6);

View File

@ -695,7 +695,7 @@ public class SspnIdtmtController {
cndtnTrgtMngVO.setUserId(loginVO.getUniqId());
cndtnTrgtMngVO.setSspnIdtmtTrgtOrd(vEPrcsDetailVO.getSspnIdtmtTrgtOrd());
cndtnTrgtMngVO.setEduStateCd("25"); // 신청
//cndtnTrgtMngVO.setEduStateCd("25"); // 신청
cndtnTrgtMngVO.setEduAplctOrd(s_eduAplctOrd); //동일한 대상자가 어떤 신청서와 맞는지 매칭에 필요함

View File

@ -63,8 +63,19 @@ public class VeSendSMS {
//error_cnt |요청실패 건수 |Integer
//msg_type |메시지 타입 (1. SMS, 2.LMS, 3. MMS) |String
//================================================================
public Map<String, Object> VeSendSMS(String receiver, String msg, String sndFlag) throws Exception {
Map<String, Object> resultMap = new HashMap<>();
resultMap.put("result_code", "1");
return resultMap;
}
public Map<String, Object> VeSendSMS_BAK(String receiver, String msg, String sndFlag) throws Exception {
String result = "";
Map<String, Object> resultMap = new HashMap<>();

View File

@ -138,6 +138,10 @@ public class CndtnTrgtMngDAO extends EgovAbstractDAO {
return (List<CndtnTrgtMngVO>) list("cndtnTrgtInfoMngDAO.checkSspnIdtmtStep2", cndtnTrgtInfoMngVO);
}
public List<CndtnTrgtMngVO> checkSspnIdtmtStep3(CndtnTrgtMngVO cndtnTrgtInfoMngVO) {
return (List<CndtnTrgtMngVO>) list("cndtnTrgtInfoMngDAO.checkSspnIdtmtStep3", cndtnTrgtInfoMngVO);
}
public CndtnTrgtMngVO checkSspnIdtmtNewStep0(CndtnTrgtMngVO cndtnTrgtInfoMngVO) {
return (CndtnTrgtMngVO) select("cndtnTrgtInfoMngDAO.checkSspnIdtmtNewStep0", cndtnTrgtInfoMngVO);
}

View File

@ -752,16 +752,22 @@
a.trgt_nm = #trgtNm#
AND a.d_birth = #dBirth#
AND a.sex = #sex#
/*
AND (
a.edu_state_cd = '10' /* 교육대기 */
OR a.edu_state_cd = '35' /* 교육신청반려*/
OR a.edu_state_cd = '50' /* 연기 */
OR a.edu_state_cd = '70' /* 재교육 */
OR a.edu_state_cd IS NULL /* 값없음 */
OR a.edu_state_cd = '' /* 값없음 */
a.edu_state_cd = '10' * 교육대기 *
OR a.edu_state_cd = '35' * 교육신청반려*
OR a.edu_state_cd = '50' * 연기 *
OR a.edu_state_cd = '70' * 재교육 *
OR a.edu_state_cd IS NULL * 값없음 *
OR a.edu_state_cd = '' * 값없음 *
)
AND a.prcs_aplct_prd_ord_cmplt IS NULL /* 병합되지 않았다. */
)
AND a.prcs_aplct_prd_ord_cmplt IS NULL * 병합되지 않았다. *
*/
<isNotEmpty property="clphone">
AND a.clphone = #clphone#
</isNotEmpty>
@ -769,7 +775,7 @@
<!-- 기소유예 대상자 확인 STEP01 -->
<select id="cndtnTrgtInfoMngDAO.selectDuplChk" parameterClass="CndtnPrcsInfoMngVO" resultClass="CndtnPrcsInfoMngVO">
/* cndtnTrgtInfoMngDAO.checkSspnIdtmtStep1 - step1.신청 가능한 대상이 있는지 찾는다. */
/* cndtnTrgtInfoMngDAO.selectDuplChk - step1.신청 가능한 대상이 있는지 찾는다. */
SELECT
<include refid="CndtnTrgtInfoMngDAO.select_column_name"/>
FROM
@ -794,19 +800,49 @@
AND a.d_birth = #dBirth#
AND a.sex = #sex#
AND (
a.edu_state_cd = '20' /* 이수 */
OR a.edu_state_cd = '25' /* 요청 */
OR a.edu_state_cd = '30' /* 교육배정 */
OR a.edu_state_cd = '40' /* 미이수 */
OR a.edu_state_cd = '60' /* 교육취소 */
a.req_state_cd = '30' /* 완료 */
/*
a.edu_state_cd = '20' * 이수 *
OR a.edu_state_cd = '25' * 요청 *
OR a.edu_state_cd = '30' * 교육배정 *
OR a.edu_state_cd = '40' * 미이수 *
OR a.edu_state_cd = '60' * 교육취소 *
*/
)
AND a.prcs_aplct_prd_ord_cmplt IS NULL /* 병합되지 않았다. */
/*
AND a.prcs_aplct_prd_ord_cmplt IS NULL * 병합되지 않았다. *
*/
<isNotEmpty property="clphone">
AND a.clphone = #clphone#
</isNotEmpty>
</select>
<!-- 기소유예 대상자 확인 STEP03 -->
<select id="cndtnTrgtInfoMngDAO.checkSspnIdtmtStep3" parameterClass="CndtnPrcsInfoMngVO" resultClass="CndtnPrcsInfoMngVO">
/* cndtnTrgtInfoMngDAO.checkSspnIdtmtStep3 - //step2.대상이 없으면 기존 이력이 있는지 확인 */
SELECT
c.edu_strt_pnttm AS eduStrtPnttm
, a.aprvl_cd AS aprvlCd
FROM
ve_edu_aplct a
, <include refid="CndtnTrgtInfoMngDAO.table_name"/> b
, ve_prcs_aplct_prd c
WHERE a.use_yn='Y'
AND a.rnds_ord =b.sspn_idtmt_trgt_ord
AND a.prcs_ord=c.prcs_aplct_prd_ord
AND b.trgt_nm = #trgtNm#
AND a.d_birth = #dBirth#
AND b.clphone = #clphone#
AND b.sex = #sex#
and c.edu_strt_pnttm >= TO_CHAR(NOW(),'YYYY.MM.DD')
</select>
<!-- 기소유예 대상자 확인 STEP00 -->
<select id="cndtnTrgtInfoMngDAO.checkSspnIdtmtNewStep0" parameterClass="CndtnPrcsInfoMngVO" resultClass="CndtnPrcsInfoMngVO">
/* cndtnTrgtInfoMngDAO.checkSspnIdtmtNewStep0 - step0.해당 계정으로 신청한 정보가 있는지 확인 하고, 있다면 동일한 정보로 신청했는지 확인 할것. */

View File

@ -460,10 +460,6 @@
AND COALESCE(a.use_yn,'Y')!='D'
</isEqual>
<isNotEmpty property="useYn">
AND a.use_yn=#useYn#
</isNotEmpty>
<isNotEmpty property="prcsAplctPrdOrd">
AND a.prcs_aplct_prd_ord=#prcsAplctPrdOrd#
</isNotEmpty>