승인취소 트랜잭션 오류 수정

main
이범준 2 months ago
parent 4ec44e1a5a
commit 2382b2738a

@ -96,13 +96,6 @@ public interface LsctMpngService {
*/
String createLsctAprv(LsctAprv lsctAprv);
/** .
* @param lsctAprv
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
String removeLsctAprv(LsctAprv lsctAprv);
}

@ -873,91 +873,6 @@ public class LsctMpngBean extends AbstractBean {
return "[S] 등록 작업이 정상 처리 되었습니다.";
}
/** .
* @param lsctAprv
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
public String removeLsctAprv(LsctAprv lsctAprv) {
// 변수 선언
int rtnNocs = -1; // 처리 결과 건수
String rtnMsg = ""; // 처리 결과 메시지
// 사용자 정보
FimsUser fimsUser = (FimsUser)currentUser().getUser();
RentQuery req = new RentQuery();
req.setLsctMpngId(lsctAprv.getLsctMpngId()); // 임대차계약 매핑 ID
req.setDelYn("N"); // 삭제 여부
// 임대차계약(TB_LSCT) 대장 조회
req.setOrderBy("LM.LSCT_MPNG_ID DESC"); // 정렬
DataObject lsctMpngInfo = lsctMpngMapper.selectLsctMpngInfo(req);
// 임대차계약매핑 정보가 없다면 종료..
if (lsctMpngInfo == null) {
rtnMsg = "[F] 작업 중 임대차계약 정보가 존재하지 않습니다.";
return rtnMsg;
}
// 임대차계약매핑 변경 승인 상태(CHG_APRV_STTS_CD)가 '요청'이 아니라면 종료..
if (!lsctMpngInfo.string("CHG_APRV_STTS_CD").equals("RQ")) {
rtnMsg = "[F] 작업 중 임대차계약 승인상태가 '요청' 이 아닙니다.";
return rtnMsg;
}
// 연계 테이블명
if (lsctMpngInfo.string("SGG_CD").equals("50110") && lsctMpngInfo.string("TASK_SE_CD").equals("ECA")) {
req.setLsctLinkTblNm("TB_LSCT_APRV_50110_ECA");
lsctAprv.setLsctLinkTblNm("TB_LSCT_APRV_50110_ECA");
} else if (lsctMpngInfo.string("SGG_CD").equals("50130") && lsctMpngInfo.string("TASK_SE_CD").equals("ECA")) {
req.setLsctLinkTblNm("TB_LSCT_APRV_50130_ECA");
lsctAprv.setLsctLinkTblNm("TB_LSCT_APRV_50130_ECA");
} else {
rtnMsg = "[F] 작업 중 연계시스템이 확인되지 않았습니다.";
return rtnMsg;
}
// 임대차계약 승인(TB_LSCT_APRV) 대장 조회
req.setOrderBy("LA.LSCT_MPNG_ID DESC"); // WHERE에 있는 컬럼만 정렬이 가능하다..
DataObject lsctAprvInfo = lsctAprvMapper.selectLsctAprvInfo(req);
// 임대차계약 승인 정보가 없다면 종료..
if (lsctAprvInfo == null) {
rtnMsg = "[F] 작업 중 임대차계약 승인 요청 정보가 존재하지 않습니다.";
return rtnMsg;
}
// 임대차계약 승인 정보의 변경 승인 상태(CHG_APRV_STTS_CD)가 '요청'이 아니라면 종료..
if (!lsctAprvInfo.string("CHG_APRV_STTS_CD").equals("RQ")) {
rtnMsg = "[F] 작업 중 임대차계약 승인 요청 정보의 승인상태가 '요청' 이 아닙니다.";
return rtnMsg;
}
// 임대차계약(TB_LSCT) 대장의 변경요청 정보를 수정한다.
LsctMpng lsctMpng = new LsctMpng();
lsctMpng.setLsctMpngId(lsctAprv.getLsctMpngId()); // 임대차계약 매핑 ID
lsctMpng.setDmndYn("N"); // 요청 여부
lsctMpng.setDmndRtrcnUserNm(fimsUser.getName()); // 요청 취소 사용자 명
lsctMpng.setDmndRtrcnUserId(fimsUser.getId()); // 요청 취소 사용자 ID
lsctMpng.setDmndRtrcnIp(lsctAprv.getChgDmndIp()); // 변경 요청 취소 IP
lsctMpng.setChgAprvSttsCd(null); // 변경 승인 상태
lsctMpng.setLsctLinkTblNm(null); // 임대차계약 연계 테이블 명
lsctMpng.setLsctAprvId(null); // 임대차계약 승인 ID
rtnNocs = lsctMpngMapper.updateLsctMpngChgDmnd(lsctMpng);
if (rtnNocs < 1) {
throw new RuntimeException("[F] 삭제 작업중 임대차계약 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
}
// DB Link는 트랜잭션이 안된다. update 건수도 확인이 안된다.
// 임대차계약 승인(TB_LSCT_APRV) 대장을 삭제한다.
lsctAprv.setAprvId(lsctAprvInfo.string("APRV_ID")); // 승인 ID
lsctAprv.setChgAprvSttsCd("RT"); // 변경 승인 상태
lsctAprvMapper.deleteLsctAprv(lsctAprv);
return "[S] 삭제 작업이 정상 처리 되었습니다.";
}
}

@ -122,10 +122,6 @@ public class LsctMpngServiceBean extends AbstractServiceBean implements LsctMpng
return lsctMpngBean.createLsctAprv(lsctAprv);
}
@Override
public String removeLsctAprv(LsctAprv lsctAprv) {
return lsctMpngBean.removeLsctAprv(lsctAprv);
}

@ -724,7 +724,7 @@ public class Rent02Controller extends ApplicationController {
// 단건
if (lsctAprv.getLsctMpngIds() == null || lsctAprv.getLsctMpngIds().length < 1) {
rtnMsg = lsctMpngService.removeLsctAprv(lsctAprv); // 삭제
rtnMsg = this.removeLsctAprv(lsctAprv); // 삭제
} else {
// Ids 만큼 반복 등록
for (String lsctMpngId : lsctAprv.getLsctMpngIds()) {
@ -732,7 +732,7 @@ public class Rent02Controller extends ApplicationController {
deltAprv.setLsctMpngId(lsctMpngId);
deltAprv.setChgDmndIp(remoteAddr);
rtnMsg = lsctMpngService.removeLsctAprv(deltAprv); // 삭제
rtnMsg = this.removeLsctAprv(deltAprv); // 삭제
if (!rtnMsg.contains("[S]")) // 오류가 발생하였으면 종료..
break;
}
@ -749,6 +749,87 @@ public class Rent02Controller extends ApplicationController {
.addObject("rtnMsg", rtnMsg);
}
private String removeLsctAprv(LsctAprv lsctAprv) {
// 변수 선언
int rtnNocs = -1; // 처리 결과 건수
String rtnMsg = ""; // 처리 결과 메시지
// 사용자 정보
FimsUser fimsUser = (FimsUser)currentUser().getUser();
RentQuery req = new RentQuery();
req.setLsctMpngId(lsctAprv.getLsctMpngId()); // 임대차계약 매핑 ID
req.setDelYn("N"); // 삭제 여부
// 임대차계약(TB_LSCT) 대장 조회
req.setOrderBy("LM.LSCT_MPNG_ID DESC"); // 정렬
DataObject lsctMpngInfo = lsctMpngMapper.selectLsctMpngInfo(req);
// 임대차계약매핑 정보가 없다면 종료..
if (lsctMpngInfo == null) {
rtnMsg = "[F] 작업 중 임대차계약 정보가 존재하지 않습니다.";
return rtnMsg;
}
// 임대차계약매핑 변경 승인 상태(CHG_APRV_STTS_CD)가 '요청'이 아니라면 종료..
if (!lsctMpngInfo.string("CHG_APRV_STTS_CD").equals("RQ")) {
rtnMsg = "[F] 작업 중 임대차계약 승인상태가 '요청' 이 아닙니다.";
return rtnMsg;
}
// 연계 테이블명
if (lsctMpngInfo.string("SGG_CD").equals("50110") && lsctMpngInfo.string("TASK_SE_CD").equals("ECA")) {
req.setLsctLinkTblNm("TB_LSCT_APRV_50110_ECA");
lsctAprv.setLsctLinkTblNm("TB_LSCT_APRV_50110_ECA");
} else if (lsctMpngInfo.string("SGG_CD").equals("50130") && lsctMpngInfo.string("TASK_SE_CD").equals("ECA")) {
req.setLsctLinkTblNm("TB_LSCT_APRV_50130_ECA");
lsctAprv.setLsctLinkTblNm("TB_LSCT_APRV_50130_ECA");
} else {
rtnMsg = "[F] 작업 중 연계시스템이 확인되지 않았습니다.";
return rtnMsg;
}
// 임대차계약 승인(TB_LSCT_APRV) 대장 조회
req.setOrderBy("LA.LSCT_MPNG_ID DESC"); // WHERE에 있는 컬럼만 정렬이 가능하다..
DataObject lsctAprvInfo = lsctAprvMapper.selectLsctAprvInfo(req);
// 임대차계약 승인 정보가 없다면 종료..
if (lsctAprvInfo == null) {
rtnMsg = "[F] 작업 중 임대차계약 승인 요청 정보가 존재하지 않습니다.";
return rtnMsg;
}
// 임대차계약 승인 정보의 변경 승인 상태(CHG_APRV_STTS_CD)가 '요청'이 아니라면 종료..
if (!lsctAprvInfo.string("CHG_APRV_STTS_CD").equals("RQ")) {
rtnMsg = "[F] 작업 중 임대차계약 승인 요청 정보의 승인상태가 '요청' 이 아닙니다.";
return rtnMsg;
}
// 임대차계약(TB_LSCT) 대장의 변경요청 정보를 수정한다.
LsctMpng lsctMpng = new LsctMpng();
lsctMpng.setLsctMpngId(lsctAprv.getLsctMpngId()); // 임대차계약 매핑 ID
lsctMpng.setDmndYn("N"); // 요청 여부
lsctMpng.setDmndRtrcnUserNm(fimsUser.getName()); // 요청 취소 사용자 명
lsctMpng.setDmndRtrcnUserId(fimsUser.getId()); // 요청 취소 사용자 ID
lsctMpng.setDmndRtrcnIp(lsctAprv.getChgDmndIp()); // 변경 요청 취소 IP
lsctMpng.setChgAprvSttsCd(null); // 변경 승인 상태
lsctMpng.setLsctLinkTblNm(null); // 임대차계약 연계 테이블 명
lsctMpng.setLsctAprvId(null); // 임대차계약 승인 ID
rtnNocs = lsctMpngMapper.updateLsctMpngChgDmnd(lsctMpng);
if (rtnNocs < 1) {
throw new RuntimeException("[F] 삭제 작업중 임대차계약 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
}
// DB Link는 트랜잭션이 안된다. update 건수도 확인이 안된다.
// 임대차계약 승인(TB_LSCT_APRV) 대장을 삭제한다.
lsctAprv.setAprvId(lsctAprvInfo.string("APRV_ID")); // 승인 ID
lsctAprv.setChgAprvSttsCd("RT"); // 변경 승인 상태
lsctAprvMapper.deleteLsctAprv(lsctAprv);
return "[S] 삭제 작업이 정상 처리 되었습니다.";
}
/** (fims/rent/rent02060-info) .
* {@link #getRentEntList(RentEntQuery) } .
* @return /rentEnt/rentEnt-main

Loading…
Cancel
Save