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

View File

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

View File

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

View File

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

View File

@ -752,16 +752,22 @@
a.trgt_nm = #trgtNm# a.trgt_nm = #trgtNm#
AND a.d_birth = #dBirth# AND a.d_birth = #dBirth#
AND a.sex = #sex# AND a.sex = #sex#
/*
AND ( AND (
a.edu_state_cd = '10' /* 교육대기 */ a.edu_state_cd = '10' * 교육대기 *
OR a.edu_state_cd = '35' /* 교육신청반려*/ OR a.edu_state_cd = '35' * 교육신청반려*
OR a.edu_state_cd = '50' /* 연기 */ OR a.edu_state_cd = '50' * 연기 *
OR a.edu_state_cd = '70' /* 재교육 */ OR a.edu_state_cd = '70' * 재교육 *
OR a.edu_state_cd IS NULL /* 값없음 */ OR a.edu_state_cd IS NULL * 값없음 *
OR a.edu_state_cd = '' /* 값없음 */ 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"> <isNotEmpty property="clphone">
AND a.clphone = #clphone# AND a.clphone = #clphone#
</isNotEmpty> </isNotEmpty>
@ -769,7 +775,7 @@
<!-- 기소유예 대상자 확인 STEP01 --> <!-- 기소유예 대상자 확인 STEP01 -->
<select id="cndtnTrgtInfoMngDAO.selectDuplChk" parameterClass="CndtnPrcsInfoMngVO" resultClass="CndtnPrcsInfoMngVO"> <select id="cndtnTrgtInfoMngDAO.selectDuplChk" parameterClass="CndtnPrcsInfoMngVO" resultClass="CndtnPrcsInfoMngVO">
/* cndtnTrgtInfoMngDAO.checkSspnIdtmtStep1 - step1.신청 가능한 대상이 있는지 찾는다. */ /* cndtnTrgtInfoMngDAO.selectDuplChk - step1.신청 가능한 대상이 있는지 찾는다. */
SELECT SELECT
<include refid="CndtnTrgtInfoMngDAO.select_column_name"/> <include refid="CndtnTrgtInfoMngDAO.select_column_name"/>
FROM FROM
@ -794,17 +800,47 @@
AND a.d_birth = #dBirth# AND a.d_birth = #dBirth#
AND a.sex = #sex# AND a.sex = #sex#
AND ( AND (
a.edu_state_cd = '20' /* 이수 */ a.req_state_cd = '30' /* 완료 */
OR a.edu_state_cd = '25' /* 요청 */ /*
OR a.edu_state_cd = '30' /* 교육배정 */ a.edu_state_cd = '20' * 이수 *
OR a.edu_state_cd = '40' /* 미이수 */ OR a.edu_state_cd = '25' * 요청 *
OR a.edu_state_cd = '60' /* 교육취소 */ 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"> <isNotEmpty property="clphone">
AND a.clphone = #clphone# AND a.clphone = #clphone#
</isNotEmpty> </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> </select>
<!-- 기소유예 대상자 확인 STEP00 --> <!-- 기소유예 대상자 확인 STEP00 -->

View File

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